0
パック拡張なしのテンプレートパラメータとして可変長引数テンプレート:この方法は、鋳型を指定するための標準に従っているかどうかを私は次のコードはコンパイルされ、VS 2015で正常に実行されることがわかっ
template<typename T, template <typename ...> class Container >
struct Holder
{
Container<T> container_;
};
int main()
{
Holder<int, std::vector> h;
h.container_.push_back(10);
std::cout << h.container_.at(0);
}
はあなたが私に教えてもらえます上記の例では、パラメータの型を指定せずにテンプレートパラメータ(コンテナ要素の型とアロケータの型)を指定しますか? standard(ワーキングドラフトによると
はそれが何を意味するの_whetherこの方法は、以下の標準_?それは許されている、それだけです。標準テンプレートライブラリがどこかで同様のことをしているかどうか知りたいですか?質問はかなり不明です。 – skypjack
ありがとう、私はそれがバリデーシュテンプレートを使用することが許されているかどうかを知りたがります(またはそれはMS C++の非スタダード機能の一部です)。 –
'Container'には非型テンプレートパラメータがない限り動作し、標準に準拠しています(私はこれをGCCとClangで数年間使用しています)。一部のコンパイラの古いバージョンだけが失敗しますが、これはこれらのコンパイラのバグです。 –