mid*_*dor 5 c++ template-meta-programming variadic-templates c++11
我今天遇到了一个有趣的问题,涉及从非匹配类型的函数指针赋值指向.
编辑:受@Frank启发的简短示例:
void printSquare(int x) { printf("%d\n", x * x); }
int* foo() {
using res_t = int*;
return res_t(printSquare);
}
Run Code Online (Sandbox Code Playgroud)
我希望代码不会编译,因为函数的返回类型应该是int*,它绝不能从类型系统边界内的函数引用或-pointer创建(就我而言)意识到).当直接返回或res_t用int *编译器代替时拒绝这个程序,但是using在它之间使用-declaration,它会编译并运行(当然,指向的位置不包含int,而是一个函数).
原始代码和问题保存在下面的单独答案中.
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |