questions regarding the design of std::initializer_list

后端 未结 1 985
失恋的感觉
失恋的感觉 2021-01-02 17:10

I have some questions regarding the design of std::initializer_list. I didn\'t find answers in [support.initlist].

Why does it have an

相关标签:
1条回答
  • 2021-01-02 17:56

    From section 18.9 of the C++ Standard:

    An object of type initializer_list provides access to an array of objects of type const E. [ Note: A pair of pointers or a pointer plus a length would be obvious representations for initializer_list. initializer_list is used to implement initializer lists as specified in 8.5.4. Copying an initializer list does not copy the underlying elements. — end note ]

    I think the reason for most of these things is that std::initializer_list isn't actually a container. It doesn't have value semantics, it has pointer semantics. Which is made obvious by the last portion of the quote: Copying an initializer list does not copy the underlying elements. Seeing as they were intended solely for the purpose of initializing things, I don't think it's that surprising that you don't get all the niceties of more robust containers such as tuples.

    0 讨论(0)
提交回复
热议问题