如何在C++中别名对成员数据



如何在C++中对成员数据进行别名

我有一个std::pair<int,int>容器来存储主从对。

为了更好的可读性,我想使用这样的东西:

using Master = std::pair<int,int>::first;
std::pair<int,int> myPair;
auto myMaster = myPair.Master;

这里的正确语法是什么?

提前谢谢。

您可以命名指向成员的指针

constexpr auto Master = &std::pair<int,int>::first;
std::pair<int,int> myPair;
auto myMaster = myPair.*Master;

另一种选择是使用类似元组的get访问std::pair,并使用自定义常量:

const std::size_t Master = 0;
std::pair<int,int> myPair;
auto myMaster = std::get< Master >( myPair );

比定点访问IMHO更干净、更可读。

我将使用以下内容:

int main() {
cout<<"Hello Worldn";

constexpr auto Master = &std::pair<int,int>::first;
std::pair<int,int> myPair;
std::pair<int,int> myPair2;
myPair.*Master = 321;
myPair2.*Master = 10;
cout<<myPair.*Master;
cout<<myPair2.*Master;
return 0;
}

感谢@Caleth

相关内容

  • 没有找到相关文章

最新更新