gpt4 book ai didi

c++ - 成员变量元组的初始化

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:49:55 25 4
gpt4 key购买 nike

我有以下代码:

struct A
{
const string name;

A(string name) :name(name) {}
};

struct Parent
{
public:
const decltype(make_tuple(A("AA"))) children{ make_tuple(A("AA")) };

Parent()
{

}

};

是否可以避免输入两次 A("AA")?

就像您使用 auto 关键字时一样 - 但有效。

最佳答案

您可以将 A("AA") 或更好的 make_tuple(A("AA")) 移动到它自己的函数中:

namespace {
auto make_children() { return make_tuple(A("AA")); }
}

struct Parent
{
public:
const decltype(make_children()) children{ make_children() };

Parent()
{

}

};

Live example

这样你只需要重复辅助函数的名字两次。根据实际代码中表达式的大小/复杂性,这可能是一个胜利。

关于c++ - 成员变量元组的初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30957748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com