#include <utility>
class C {
private:
const std::pair<int,int> corner1(1,1);
};
GCC はエラーを報告します: 数値定数の前に識別子が必要です。
constであるため、宣言の瞬間にオブジェクトを構築する必要がありますが、正しい構文を取得できないようです。
constであるため、宣言の瞬間にオブジェクトを構築する必要がありますが、正しい構文を取得できないようです。
いいえ、非整数型のみを初期化できます-constかどうか(少なくともC ++ 11より前)、コンストラクター初期化子リストで:
class C {
private:
const std::pair<int,int> corner1;
C() : corner1(1,1) {}
};
しかし、すべてのインスタンスでメンバーを複製する必要はないように思われるので、代わりに静的にするだけです。
class C {
private:
static const std::pair<int,int> corner1;
};
//implementation file:
const std::pair<int,int> C::corner1(1,1);
合格-std=c++11
し、より新しいバージョンのgccを使用している場合は、次のように実行できます。
class C {
private:
const std::pair<int,int> corner1{1,1}; // Note curly braces
};