指向成员变量的指针的正确 'using' 语法

Proper 'using' syntax for pointer-to-member variable

  struct MyStruct {
    typedef int MyStruct::*Ptr;  // my pointer-to-member type
    int foo, bar;
  };

此代码有效,但我想以现代风格更新它,并将 typedef 替换为 using。正确的语法是什么?我尝试了很多选择,但我被卡住了;我能找到的唯一示例是指向成员的指针-函数,这是不同的。

using语法只是移动标识符的位置,一般情况是

typedef ............. foo ..............;

可以改成

using foo = .............  .............;

你的情况也不例外;代码可以是 using Ptr = int MyStruct::*;

using Ptr = int (MyStruct::*);

一般来说,(MyStruct::*) 会出现在 * 出现在非成员指针中的任何地方。