From 6470ddccb19fd3a8a3d4b434004329197ca724de Mon Sep 17 00:00:00 2001 From: Hu Jialun Date: Sat, 10 Jul 2021 00:24:12 +0800 Subject: [PATCH] Add std::initializer_list constructor C++11 allows list initialization for classes. STL map has been added a constructor with the signature map(initializer_list il, const allocator_type& alloc = allocator_type()); Added a similar constructor to bimap, allowing for initialization in the form of initializer list, such as boost::bimap tdn { {114.514, 1919}, {891.931, 810} }; --- include/boost/bimap/bimap.hpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/include/boost/bimap/bimap.hpp b/include/boost/bimap/bimap.hpp index 5fe7a3f5..a3603e5d 100644 --- a/include/boost/bimap/bimap.hpp +++ b/include/boost/bimap/bimap.hpp @@ -265,6 +265,29 @@ class bimap {} + #ifndef BOOST_NO_CXX11_HDR_INITIALIZER_LIST + bimap(std::initializer_list init, + const allocator_type& al = allocator_type()) : + + base_::relation_set( + ::boost::multi_index::get< + BOOST_DEDUCED_TYPENAME base_::logic_relation_set_tag>(core) + ), + + core(init,ctor_args_list(),al), + + left ( + ::boost::multi_index::get< + BOOST_DEDUCED_TYPENAME base_::logic_left_tag>(core) + ), + right ( + ::boost::multi_index::get< + BOOST_DEDUCED_TYPENAME base_::logic_right_tag>(core) + ) + + {} + #endif + bimap(const bimap& x) : base_::relation_set(