eb27.c
来自「Mac OS X 10.4.9 for x86 Source Code gcc」· C语言 代码 · 共 43 行
C
43 行
// { dg-do assemble }// { dg-options "-Wno-deprecated" }/* bug.cc *//* simple program to demonstrate the bug with named return values in gcc*//* (w) 4.9.97 by Kurt Garloff <K.Garloff@ping.de> */// 8/28/1998 - This dies in add_conversions from dfs_walk, null CLASSTYPE_METHOD_VEC// for the test<T> record_type. This is marked as an expected failure for now,// until we actually fix it.#include <iostream>template <class T> class test;template <class T> test<T> operator + (const test<T>& a, const test<T>& b);// A simple numerical classtemplate <class T>class test{ T elem; public: test () { elem = 0; }; test (const T& a) { elem = a; }; test<T>& operator += (const test<T>& a) { elem += a.elem; return *this; }; friend test<T> operator + <> (const test<T>&, const test<T>&); friend std::ostream& operator << (std::ostream& os, const test<T>& a) { return os << a.elem; };};// named return value versiontemplate <class T>test<T> operator + (const test<T>& a, const test<T>& b) return c(a);// { dg-error "" } named return value{ c += b; } // { dg-error "" } c undeclaredint main(){ test<int> x, y; x += 5; std::cout << x << std::endl; y = x + test<int>(2); std::cout << y << std::endl;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?