11

今日、Stroustrup の C++11 FAQ (2013 年 4 月 7 日修正) を調べたところ、type-alias セクションの最後に次のように書かれていました。

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

ここで、ラムダ イントロデューサーは、サフィックス スタイルの戻り値の型を使用する一般的な関数型の式を開始するために使用されます。これは公式のものですか、それとも削除されたベータ版/ウィッシュ リスト機能ですか? 公式の場合、非静的メンバー関数ではどのように機能しますか?

4

1 に答える 1

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

公式ではありません。Bjarne は彼の FAQ で少し不注意であることが知られています。

ただし、機能するのは次のとおりです。

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

は関数P1型で、P2関数ポインタ型です。それが彼の意図だったのかもしれません。

于 2013-04-30T06:30:19.557 に答える