template <typename T>
class SomeClass {
public:
using container = std::vector<T>;
container buffer;
public:
SomeClass(T elem): buffer({elem}) {
}
};
SomeClass(char const*) -> SomeClass<std::string>;
int main() {
std::cout << typeid(SomeClass<char const*>).name() << std::endl;
SomeClass a("test");
std::cout << typeid(a).name() << std::endl;
return 0;
}
在示例中,我指定了一个从char const*
转换为std::string
的指南,但输出显示了
class SomeClass<char const *\>
class SomeClass<char const *>
我希望这两种类型都可以实例化为std :: string,而不是char const *
我将如何更改此代码以产生该输出?