如何使用"使用"功能?例如
class A;
void f(int);
struct B
{
using BA = A;
using Bf = f; ???
};
Run Code Online (Sandbox Code Playgroud)
Nir*_*man 11
你可以做
struct B
{
using BA = A;
constexpr static auto Bf = f;
}
Run Code Online (Sandbox Code Playgroud)
这样你就不必担心指定类型了,这可能很烦人.
您不希望声明非静态变量,否则对象的每个副本都将携带一个函数指针.你也不希望它是可变的,因为那样你就可以重新分配它.您也不希望它在运行时可能被确定,因为编译器必须在给定的上下文中向自己证明调用Bf是真正调用的f,否则支付函数间接成本.在constexpr处理这些最后两分.