【问题标题】:Proper 'using' syntax for pointer-to-member variable指向成员变量的正确“使用”语法
【发布时间】:2018-11-12 22:43:43
【问题描述】:
  struct MyStruct {
    typedef int MyStruct::*Ptr;  // my pointer-to-member type
    int foo, bar;
  };

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

【问题讨论】:

    标签: c++ pointer-to-member


    【解决方案1】:

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

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

    可以改成

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

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

    【讨论】:

      【解决方案2】:
      using Ptr = int (MyStruct::*);
      

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

      【讨论】:

      • 请注意,在这种情况下括号是不必要的。
      • @Brian 是的,但我发现没有它们会令人难以置信的混乱。
      猜你喜欢
      • 1970-01-01
      • 2017-01-12
      • 1970-01-01
      • 1970-01-01
      • 2015-01-04
      • 1970-01-01
      • 1970-01-01
      • 2016-12-27
      相关资源
      最近更新 更多