这是代码:
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
std::tuple<int, ListNode*> head{0, &&ListNode(0)};
错误注释:
expected ‘}’ before ‘(’ token
我只是混淆了这里发生的事情,初始化列表是不是能够接受内部初始化?我阅读了cppreference.com和C ++入门。他们都没有像这样的用法样本。但是,我想我可以做这样的事情:
std::tuple<type, class*> n{ type_value, &&class_initialization }
而不是
std::tuple<type, class*> n{ type_value, class_reference_or_pointer }
答案 0 :(得分:4)
您应该使用单个ListNode*
来获取地址(即ListNode(0)
)。
您无法获取临时对象的地址(即ListNode node(0);
std::tuple<int, ListNode*> head{0, &node};
)。
你可能想要:
{{1}}