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 *
Как бы я изменил этот код для получения такого вывода?