c++ 11中有新的函数类型表达式格式吗?

Is there a new function type expression format in C++11?

本文关键字:表达式 类型 格式 函数 c++      更新时间:2023-10-16

今天我查看了Stroustrup的c++ 11 FAQ(2013年4月7日修改),并在类型别名部分的末尾看到了以下内容:

typedef void (*PFD)(double);    // C style
using PF = void (*)(double);    // using plus C-style type
using P = [](double)->void;     // using plus suffix return type

,其中lambda引入器用于启动使用后缀样式返回类型的通用函数类型表达式。这是官方的,还是一个测试版/愿望列表功能?如果它是正式的,那么对于非静态成员函数它是如何工作的呢?

using P = [](double)->void;

不是正式的。众所周知,Bjarne在他的常见问题解答中有点粗心。

有效的方法是:

using P1 = auto(double) -> void;
using P2 = auto(*)(double) -> void;

其中P1为函数类型,P2为函数指针类型。也许这就是他的本意。

相关文章: