【发布时间】:2019-11-14 23:23:17
【问题描述】:
(此示例未使用 #include,在 MacOS10.14、Eclipse IDE 上编译,使用 g++,选项 -O0 -g3 -Wall -c -fmessage-length=0)
假设这个变量声明:
int (*fun)(int);
编译失败,“std::toupper 和 std::tolower 的重载无效”。
fun = (1 ? std::toupper : std::tolower); // ERROR, invalid overload
编译成功:
if (1) {
fun = std::toupper; // OK
}
else {
fun = std::tolower; // OK
}
【问题讨论】:
-
评论不用于扩展讨论;这个对话是moved to chat。
标签: c++ function pointers overloading