Tôi hỏi một câu hỏi ở đây: Lifetime Extension of a initializer_list return liên quan đến mã không có chức năng:Danh sách kèm theo xoăn-Brace Nếu không phải là một intializer_list?
const auto foo = [](const auto& a, const auto& b, const auto& c) { return {a, b, c}; };
Tôi tin rằng lambda đã cố gắng để trả lại một intializer_list
(đó là xấu, không làm điều đó.) Nhưng tôi có một comment:
It's not an
initializer_list
, it's an initializer list. Two different things.
Tôi chỉ nghĩ rằng bất cứ khi nào bạn tạo danh sách có dấu ngoặc nhọn bạn đang tạo intializer_list
. Nếu đó không phải là những gì đang xảy ra, một danh sách trong ngoặc nhọn là gì?
Chỉ là: error: return initializer list. –
@ DieterLücking Bạn phải có lỗi của bạn được bật lên cao hơn tôi. Tôi thậm chí không nhận được một cảnh báo lần đầu tiên tôi đã cố gắng này, mặc dù như đã nêu trong câu hỏi liên kết này là * không * mã tốt. –
@JonathanMee Dưới đây SO câu hỏi cũng có một số câu trả lời hữu ích để biết: http://stackoverflow.com/questions/29200036/is-providing-a-private-constructor-for-initializer-list-conforming – Arunmu