I'm having some problems coping with this "uniform initialization"/"initialization list" example from Bjarne Stroustrup himself.
What bothers me is that the example does not work with tuples:
I can't understand why the tuple example is not working :/Code:#include <string> #include <list> #include <tuple> #include <utility> //This works: Uniform initialization, normal std::pair<std::string, std::string> a{"Nygaard","Simula"}; std::tuple<std::string, std::string> b{"Richards","BCPL"}; //This doesn't work, initialization lists, normal //std::pair<std::string, std::string> aa{{"Nygaard","Simula"}}; //std::tuple<std::string, std::string> bb{{"Richards","BCPL"}}; //This works std::list<std::pair<std::string, std::string>> languages_pair = { {"Nygaard","Simula"}, {"Richards","BCPL"}, {"Ritchie","C"} }; //but this doesn't std::list<std::tuple<std::string, std::string>> languages_tuple = { {"Nygaard","Simula"}, {"Richards","BCPL"}, {"Ritchie","C"} }; int main() { }
Which constructor are the pairs using that the tuple doesn't have?




Reply With Quote