私はコード内のさまざまなモジュールに複数のデータクラスを持っていますが、変更するつもりはありません。 私は、それぞれのコンテナクラスを持っています。コンテナクラスは、このデータクラスへのポインタを持っています。また、これらのクラスを知ることなく保持するクラスへのポインタもあります。私が実装コンテナクラスでそうテンプレートの自動返却型
:
DataClass GetMyData (void){
return myData;
}
と私は
template<class ContainerClass>
ContainerClass GetContainer (void);
template<class ContainerClass>
auto GetData (void){
GetContainer<ContainerClass>().GetMyData();
}
を作成しましたが、私はこのGetDataの機能を使用しようとするたびに、私はエラーを取得するこれらのcointainerクラスのコレクションでの
'auto'を返す関数は、定義される前に使用できません。
私の質問は、この場合(C++ 11)autoを使用することは可能ですか、2つのクラスでテンプレートを作成する必要がありますか?
C++ 11では、これは全く可能ではありません。戻り値の型減算はそこのlambdasにのみ適用されます。関数用にも追加したのはC++ 14でした。 – Angew
ありがとうございましたAngew、よく私は別のテンプレートパラメータを使用しなければならないと思います... –
@MartinZink - あなたはありません – StoryTeller