は、私はこのような再帰的なデータ型を持っています。どこかでエラーを出していますか?これは標準の一部ですか?テンプレートの再帰的なデータ型
テンプレートパラメータ(std::stack
とstd::queue
など)で内部コンテナを決定したいと思っていますが、SomeTypeが既に定義されている必要があるため、これを行う方法はわかりません。
不完全な例:
template<typename T, typename C = std::map<T, SomeType<[???]>>>
struct SomeType {
C mapping;
};
SomeType<int, [???]> foo;
私は、これは、ランタイム間接に行うことができます知っているが、それは私が探しているものではないのです。
標準ライブラリコンテナテンプレートは、あなたが完全な種類とそれらをインスタンス化することが必要です。それ以外は未定義の動作です。あなたはそれで生きなければなりません。あなたはそれを回避するために、ピンプルソリューションを使用することができます。 –
@KerrekSBそうですか?私は定期的にノードが 'std :: vector children'の観点から実装されたn-aryツリーを作成しました。 –
@ KonradRudolph:インスタンス化時に型が完全であることを確認する必要があります。それは微妙な問題かもしれません。 –