作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试使用一组过滤函数来根据字符串输入运行适当的例程。我尝试使用模板为常见情况创建匹配器函数,但当我尝试存储指向专用函数的指针(在结构中,在实际应用程序中)时,出现“类型不等于类型”错误
从 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,同样的例子会成功。
最佳答案
ISO 标准禁止将字符串作为模板值参数。
关于c++ - 如何获取指向专门针对字符串的模板函数的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1051010/
我有一个带有模板函数的基类,该函数具有通用模板类型和专用版本。 #ifndef BASE_CLASS #define BASE_CLASS #include using namespace std;
我有这个 3D vector 模板 template class Vec3TYPE{ public: union{ struct{ TYPE x,y,z; }; struct{ TY
我是一名优秀的程序员,十分优秀!