単純なクラス()をコンパイルしようとするとg++ myclass.cpp
、次のエラーが発生します。
ISO C ++は、型のない「タプル」の宣言を禁止します
私はこの問題を検索しましたが、ほとんどの場合、人々はヘッダーを忘れstd::
たり<tuple>
、ヘッダーに含めたりしているようでした。しかし、私は両方を持っています。これが私のコードです:
myclass.h
#ifndef MYCLASS
#define MYCLASS
#include <iostream>
#include <tuple>
class MyClass {
std::tuple<bool, int, int> my_method();
};
#endif
myclass.cpp
#include "myclass.h"
using namespace std;
tuple<bool, int, int> MyClass::my_method() {
return make_tuple(true, 1, 1);
}
pair
代わりに同じことを使用して、2番目を省略し、int
を含める<set>
と、機能します。
私は何が欠けていますか?
編集:
完全な出力は次のとおりです。
$ g ++ myclass.cpp -o prog
myclass.cpp:1からインクルードされたファイル: myclass.h:7:エラー:ISO C ++は、タイプ myclass.h:7
のない'タプル'の宣言を禁止します:エラー:'の無効な使用:
:'<br> myclass.h:7:エラー:予期された'; ' '&lt;'の前 トークン
myclass.cpp:5:エラー:'&lt;'の前にコンストラクタ、デストラクタ、または型変換が必要です トークン$ g ++ --version
i686-apple-darwin11-llvm-g ++-4.2(GCC)4.2.1(Apple Inc.ビルド5658に基づく)
(LLVMビルド2336.11.00)