Open bluetarpmedia opened 3 months ago
Describe the bug I'd like to initialize a std::map (and other associative containers) with an initializer list or some other terse syntax similar to C++.
std::map
To Reproduce I'm trying to translate the following C++ code into Cpp2:
std::map<std::string, int> m{{"CPU", 10}, {"GPU", 15}, {"RAM", 20}};
from the std::map example on cppreference.
This attempt fails:
m: std::map<std::string, int> = (("CPU", 10), ("GPU", 15), ("RAM", 20));
because it lowers to:
std::map<std::string,int> m {("CPU", 10), ("GPU", 15), ("RAM", 20)};
Both of the following succeed:
m: std::map<std::string, int> = ( std::make_pair("CPU", 10), std::make_pair("GPU", 15), std::make_pair("RAM", 20));
m: std::map<std::string, int> = ( :std::pair = ("CPU", 10), :std::pair = ("GPU", 15), :std::pair = ("RAM", 20));
But they don't have the same terse syntax as the original C++.
See also:
Describe the bug I'd like to initialize a
std::map
(and other associative containers) with an initializer list or some other terse syntax similar to C++.To Reproduce I'm trying to translate the following C++ code into Cpp2:
from the std::map example on cppreference.
This attempt fails:
because it lowers to:
Both of the following succeed:
But they don't have the same terse syntax as the original C++.
See also:
568 - [BUG] Multidimensional std::array initialization