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 + -
显示快捷键?