我试图使用一组滤波器函数来运行适当程序的基础上,字符串输入。我试图创建一个使用模板通常情况下匹配功能,但我得到一个“类型不等于输入”错误,当我尝试存储的指针专门功能(在结构,在实际应用)

从Visual C蒸馏水例如++ 8 '控制台应用程序'

template <const char *C>
const char*
f(void) {
  return C;
}

const char* (*g)(void) = f<"hi">;


int _tmain(int argc, _TCHAR* argv[])
{
  return g();
}

此失败,错误

Error   1   error C2440: 'initializing' : cannot convert from 'const char *(__cdecl *)(void)' to 'const char *(__cdecl *)(void)'    c:\files\pointer.cpp    7   

(它也有在主返回值的误差,但是,这并不在这里与我无关。)

如果const char *被替换为int同样的例子succedes。

有帮助吗?

解决方案

的字符串作为模板值参数由ISO标准禁止。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top