elision.c
来自「用于进行gcc测试」· C语言 代码 · 共 77 行
C
77 行
// I, Howard Hinnant, hereby place this code in the public domain.// Test: Implicit cast to rvalue when eliding copy// { dg-do compile }// { dg-options "-std=c++0x" }template <bool> struct sa;template <> struct sa<true> {};struct one {char x[1];};struct two {char x[2];};class move_only{ move_only(const move_only&); move_only& operator=(const move_only&);public: move_only() {} move_only(move_only&&) {} move_only& operator=(move_only&&) {return *this;}};move_onlytest1(){ return move_only();}move_onlytest2(){ move_only x; return x;}move_onlytest3(bool b){ move_only x1; if (b) { move_only x2; return x2; } return x1;}voidtest4(bool b){ if (!b) throw move_only();}voidtest5(bool b){ move_only x; if (!b) throw x;}extern bool b;int main(){ move_only t1 = test1(); move_only t2 = test2(); move_only t3 = test3(b); test4(b); test5(b); return 0;}bool b = true;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?