У меня есть простой класс с конструктором, который принимает std::map
.Я хочу инициализировать класс парой заключенного в паяльник списка инициализатора.Вот что я попробовал:
//X.h
#include <map>
template <class key, class value>
class X{
public:
X(const std::map<key, value>& map) : m_map{map} {}
private:
typename std::map<key, value> m_map;
};
//main.C
int main() {
std::map<char, int> m = {{'a', 5}};
X<char, int> x = m; //valid
X<char, int> y = {{'a', 5}}; // error
}
Но я получаю ошибку.Я предполагаю, что мне нужно реализовать другой конструктор, чтобы иметь возможность инициализировать списком инициализаторов, но я не знаю как.