template<???>
struct Container{
T t;
M<T> v;
}
Run Code Online (Sandbox Code Playgroud)
哪里Container<vector<int>>应该生成
struct Container{
int t;
vector<int> v;
}
Run Code Online (Sandbox Code Playgroud)
我可以用模板表达这个吗?
是:
template<typename T, template <typename, typename> class M>
struct Container {
T t;
M<T,std::allocator<T>> v;
};
Run Code Online (Sandbox Code Playgroud)
用于:
Container<int,std::vector>
Run Code Online (Sandbox Code Playgroud)
交替:
template <typename C>
struct Container {
typename C::value_type t;
C v;
};
Run Code Online (Sandbox Code Playgroud)
并使用:
Container<std::vector<int>>
Run Code Online (Sandbox Code Playgroud)