开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
MSVC14
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
原本的code是一个负责传递文字讯息class收到std::string或std::wstring之后
将文字讯息传递出去
所以在.h里面宣告了
void send_message(const std::string& msg);
void send_message(const std::wstring& msg);
我想将这个function改写成template 所以我写了
template<typename T>
void send_message_t(const T&& msg);
在cpp里做explicit instantiation
template void MyClass::send_message_t<std::string>(const std::string&&);
template void MyClass::send_message_t<std::wstring>(const std::wstring&&);
原有的function由于const char[]会implicit conversion成std::string所以当呼叫
send_message("message"); 的时候是没有问题的
但是由于我做了explicit instantiation
目前只能写成 send_message_t(std::string("message"));
我想我应该将const char[]也做explicit instantiation 可是不知道该怎么写..
有说错的地方请指教 谢谢
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
cannot convert argument 1 from const char[8] to const char(&&)[8];
程式码(Code):(请善用置底文网页, 记得排版)
补充说明(Supplement):