假设我有一个 STL 容器类型(不是对象),例如vector<A>. 现在是这样value_type,A所以我想把它改成B。
基本上,我想要一个这种形式的类模板,或其变体:
template<typename container, typename new_value_type>
struct change_value_type
{
typedef /*....*/ new_container;
};
Run Code Online (Sandbox Code Playgroud)
这样我就可以按以下方式使用它:
typename change_value_type<vector<A>, B>::new_container vectorOfB;
vectorOfB.push_back(B());
vectorOfB.push_back(B());
vectorOfB.push_back(B());
//etc
Run Code Online (Sandbox Code Playgroud)
意思是,new_container是vector<B>
是否可以?