C ++无法使用指南正确推论

时间:2018-12-07 14:41:26

标签: c++ templates

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 *

我将如何更改此代码以产生该输出?

0 个答案:

没有答案