This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
At 09:12 AM 8/16/2014 +0200, Marc Glisse wrote:
On Fri, 15 Aug 2014, Sidney Marshall wrote:The following code compiles and runs correctly but gives a warning: ---------------------------------------- #include<iostream> using namespace std; template<class T> T sum(T value) { return value; } template<class T, class ... U> auto sum(T value, U ... values) { return value + sum(values ...); } int main() { cout << sum(1, 2, 4.6) << endl; cout << sum(1, "abcde", 2) << endl; } -------------------------------------- $ g++ -std=c++11 pack.cpppack.cpp:11:31: warning: â??sumâ?? function uses â??autoâ?? type specifier without trailing return type [enabled by default]auto sum(T value, U ... values) {The warning should probably specify that this is a C++14 feature. You should be compiling with -std=c++1y.
You are correct - I didn't read section 7.1.6.4 paragraphs 2 and 5 of the standard correctly. Thank you.
I guess I can't write this function in C++11 this way.
-- Marc Glisse
--Sidney Marshall
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |