我有以下代码:
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关键字一样 - 但正在工作。
答案 0 :(得分:0)
您可以将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()
{
}
};
这样你只需重复两次辅助函数的名称。根据实际代码中表达式的大小/复杂程度,这可能是一个胜利。