繁体   English   中英

成员变量元组的初始化

[英]Initialization of a member variable tuple

我有以下代码:

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()
    {

    }

};

现场例子

这样,您只需要重复两次辅助函数的名称即可。 取决于实际代码中表达式的大小/复杂程度,这可能是一个成功。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM