当尝试编译一个简单的类 ( g++ myclass.cpp
) 时,我收到以下错误:
ISO C++ 禁止声明没有类型的“元组”
我搜索了这个问题,在大多数情况下,人们似乎忘记std::
或包含<tuple>
在标题中。但我两者都有。这是我的代码:
我的班级.h
#ifndef MYCLASS
#define MYCLASS
#include <iostream>
#include <tuple>
class MyClass {
std::tuple<bool, int, int> my_method();
};
#endif
我的类.cpp
#include "myclass.h"
using namespace std;
tuple<bool, int, int> MyClass::my_method() {
return make_tuple(true, 1, 1);
}
如果我pair
改为使用相同的方法,省略第二个int
并包括<set>
,它可以工作。
我错过了什么?
编辑:
这是完整的输出:
$ g++ myclass.cpp -o prog
在 myclass.cpp:1 中包含的文件中:
myclass.h:7: 错误:ISO C++ 禁止声明没有类型
myclass.h:7 的“元组”:错误:无效使用“: :'<br> myclass.h:7: 错误:预期 ';' 在'<'之前 token
myclass.cpp:5: 错误: '<' 之前的预期构造函数、析构函数或类型转换 令牌$ g++ --version
i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (基于 Apple Inc. build 5658)
(LLVM build 2336.11.00)