编译器错误 C3853
“=”: 通过指向函数的引用重新初始化引用或分配是非法的
无法通过函数分配给引用,因为函数不是 lvalue。
以下示例生成 C3853:
// C3853.cpp
// compile with: /EHsc
#include <iostream>
int afunc(int i)
{
return i;
}
typedef int (& rFunc_t)(int);
int main()
{
rFunc_t rf = afunc; // OK binding a reference to function
rf = afunc; // C3853, can't reassign to a ref that's an lvalue
int i = 99;
int & ri = i;
std::cout << i << std::endl;
ri = 0; // OK, i = 88;
std::cout << i << std::endl;
}
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈