我有两个类,我们称它们为SomeClass和OtherClass。将未知类型的模板类传递给无模板类构造函数
SomeClass的是模板:
template <typename T> class SomeClass
{
public:
SomeClass (const T& value);
};
OtherClass不是模板,但使用SomeClass的。
class OtherClass
{
public:
OtherClass (const SomeClass& c, const std::string s);
};
他们应该被称为是这样的:
SomeClass<int> some(5);
OtherClass other(some, "hello, world!");
other.doSomethingWithSome();
......显然,这将无法编译,因为编译器需要知道SomeClass的类型...
不幸对我而言,SomeClass的类型几乎可以做任何事情(尽管使用的实际类型数量有限,只是无关紧要),并且在开发过程中可能会频繁更改。 (我知道,我知道,我想我真的可以使用SomeClass的类型并将它传递给模板化的OtherClass,但由于存在很多实例,它的工作非常乏味;而且,我想假装这两个类都不知道:))
问题很简单:我怎样才能使用这个语法? (不需要templatize OtherClass。)
专业为每一个类型似乎是一个好主意,因为:)幸好有没有这么多的类型,我会使用。 – 2010-12-21 23:09:52