当前位置:  开发笔记 > 编程语言 > 正文

如何使用"使用"功能?

如何解决《如何使用"使用"功能?》经验,为你挑选了1个好方法。

如何使用"使用"功能?例如

class A;
void f(int);

struct B
{
   using BA = A;
   using Bf = f; ???
};

Nir Friedman.. 11

你可以做

struct B
{
   using BA = A;
   constexpr static auto Bf = f;
}

这样你就不必担心指定类型了,这可能很烦人.

您不希望声明非静态变量,否则对象的每个副本都将携带一个函数指针.你也不希望它是可变的,因为那样你就可以重新分配它.您也不希望它在运行时可能被确定,因为编译器必须在给定的上下文中向自己证明调用Bf是真正调用的f,否则支付函数间接成本.在constexpr处理这些最后两分.



1> Nir Friedman..:

你可以做

struct B
{
   using BA = A;
   constexpr static auto Bf = f;
}

这样你就不必担心指定类型了,这可能很烦人.

您不希望声明非静态变量,否则对象的每个副本都将携带一个函数指针.你也不希望它是可变的,因为那样你就可以重新分配它.您也不希望它在运行时可能被确定,因为编译器必须在给定的上下文中向自己证明调用Bf是真正调用的f,否则支付函数间接成本.在constexpr处理这些最后两分.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有