[问题] template + vector

楼主: su27 (su27)   2022-03-29 18:12:44
开发平台(Platform): (Ex: Win10, Linux, ...)
win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
qt
问题(Question):
dll的函数
void fun_1(vector<uchar> &val)
void fun_2(vector<char> &val)
我在qt写一个函数
功能是
填写不同的dataType
调用来自DLL不同的函数
template <class type>
static void Select_fun(vector<type> vtp)
{
if (std::is_same<type, uchar>::value)
{
vector<uchar> &temp=vtp; //<<这边报错
fun_1(temp);
}
else if (std::is_same<type, char>::value)
{
fun_2(vtp); //<<这边报错
}
}
错误讯息
//
作者: sarafciel (Cattuz)   2022-03-29 18:19:00
模板不会帮你绕掉type checking,请把偏特化拿出来用更正 全特化
作者: Schottky (顺风相送)   2022-03-29 19:18:00
楼下 Su22
作者: harryooooooo (真_终极萝莉控Ecstasy_)   2022-03-29 19:44:00
c++17以后的话也可以用if constexpr
作者: jack7775kimo (阿庞)   2022-03-29 21:49:00
错误讯息里面为何会有vector<int>?
作者: steve1012 (steve)   2022-03-31 05:26:00
If branch 在runtime 才会跑所以template 还是instantiate 那段code 了你要conditionally compile 要用constexpr if

Links booklink

Contact Us: admin [ a t ] ucptt.com