问题是关于在MS Visual C++ 11中开发的代码,只能访问STL,没有Boost.
有一个包装器模板类,大致有这个标头:
template <typename Payload>
class Wrapper {
Payload p;
std::string src;
Wrapper( std::string, Payload );
Payload get(); // returns payload
void set(Payload); // replaces payload
void operator ()(); // uses payload
}
Run Code Online (Sandbox Code Playgroud)
Payload 可能是任何东西 - 指针,int,甚至是重物.
之后,Wrapper需要进入一个容器,比如std::vector- 但不管它们的具体参数类型如何.这给我带来了麻烦,因为容器需要同质的元素.
我已经尝试了基类建议,这样从KennyTM,但它给了我与方法的一些问题get()和set()-那些需要投从载体使用时,因为元素,看起来像一个基类,如果通过回答提出的模式中使用(?).