次の動作を持つコードを持つことが可能かどうかを知りたい:
int main()
{
func<vector>(/*some arguments*/);
}
つまり、操作対象の型を指定せずに、ユーザーがコンテナーを指定できるようにしたいのです。
たとえば、定義func
する可能性のある (メタ) コード (上記では機能しない) は次のようになります。
template<typename ContainerType>
int func(/*some parameters*/)
{
ContainerType<int> some_container;
/*
operate on some_container here
*/
return find_value(some_container);
}