成员变量元组的初始化
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()
{
}
};
实时示例
这样,您只需要重复两次helper函数的名称。根据实际代码中表达式的大小/复杂性,这可能是一个胜利。
相关文章:
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- 在函数内部的声明中初始化数组,并在外部使用它
- 为什么用结构初始化数组需要指定结构名称
- 有没有一种代码密度较低的方法来使用非默认构造函数初始化数组?
- C++使用另一个数组和新值初始化数组
- 初始化数组、"memset"或" {//value} "的最佳方法是什么?
- C1001内部编译器错误是由于矢量初始化(如数组)引起的
- 在 constexpr 构造函数中初始化数组是否合法?
- 我可以初始化 const 实例,以便我可以将其用作 const 来初始化数组吗?
- 在构造函数中初始化数组
- 是否可以使用函数返回的值初始化数组
- 使用宏使用额外元素初始化数组
- 三角化元组
- 在循环中显示不同值的初始化数组
- 如何在macOS中的旧扩展clang和gcc编译器中初始化数组和向量
- 使用每种类型的可变参数模板上的类模板初始化元组
- 跨继承树初始化元组
- 使用对另一个元组不同类型的元素的非常量引用来初始化元组的元素
- 在可变参数模板类的构造函数中初始化元组成员
- 用相同的参数初始化元组