2011-11-12 9 views
3

g ++が実際にはチェーンコンストラクタのC++ 11標準に準拠しているかどうかは疑問でした。g ++でのチェーンコンプライアンスのC++ 11

は例:

class MyClass 
{ 
    MyClass(int x, int y = 0); 
    MyClass(int y = 0) : MyClass(8, y) {} 
}; 

私は-std = C++ 0xの(または-std = gnuの++ 0xの)パラメータを含めたにも関わらず、このエラーを得続ける(ない-std =はありませんC++ 11)

error: type ‘MyClass’ is not a direct base of ‘MyClass’

私は結論に飛び込んでいません。私はネットを見回しましたが、それについての情報は見つけられないようです。ところで

、私は++グラムを使用しています(Debianの4.6.2-4)4.6.2

答えて

11

それは(コンストラクタを委任を探してください)not yet supportedです。

それ以外は、あなたのデザインが非常にあいまいだと思いませんか? MyClass(1)は何を呼び出す必要がありますか?

+1

あいまいさをよく捉えてください。私は例を作り出していた。私の実際のコードは2つの(非常に)異なるタイプを使用するので、その問題はありません。 – Gravis

+0

参照http://stackoverflow.com/questions/10417314/c-init-member-variables-with-multiple-constructors#comment13441709_10417381 –

関連する問題