Я повторюсь -создание функций открытого интерфейса, которые я хочу, из std::map, пересылка их в атрибут класса.
Как мне указать конструктор, который принимает список инициализаторов в качестве параметра? Я использую map.
Первая попытка использования инициализатора_list
> :< /p>
Код: Выделить всё
class IdParentingMap
{
public:
using DataMap = std::map;
using DataMapIt = DataMap::iterator;
using DataMapConstIt = DataMap::const_iterator;
IdParentingMap();
IdParentingMap(std::initializer_list initList);
DataMapConstIt findParentIt(const int id) const;
/** Forwards from std::map **/
std::size_t size() const;
DataMapIt end();
DataMapConstIt end() const;
private:
DataMap data;
};
IdParentingMap::IdParentingMap(initializer_list initList)
: data(initList)
{
}
В конструкторе
'IdParentingMap::IdParentingMap(std ::initializer_list)': IdParentingMap.cpp:13:5: ошибка: нет соответствующей
функции для вызова 'std::map< int, std::vector
::map(std::initializer_list&)' 13 | : данные(initList)
| ^~~~~~~~~~~~~~
Вторая попытка использования инициализатора_list
>:
Код: Выделить всё
class IdParentingMap
{
public:
using DataMap = std::map;
using DataMapIt = DataMap::iterator;
using DataMapConstIt = DataMap::const_iterator;
IdParentingMap();
IdParentingMap(std::initializer_list initList);
DataMapConstIt findParentIt(const int id) const;
/** Forwards from std::map **/
std::size_t size() const;
DataMapIt end();
DataMapConstIt end() const;
private:
DataMap data;
};
IdParentingMap::IdParentingMap(initializer_list
>> initList)
: data(initList)
{
}
В конструкторе
'IdParentingMap::IdParentingMap(std ::initializer_list)': IdParentingMap.cpp:13:5: ошибка: нет
соответствующей функции для вызова 'std::map< int, std::vector
::map(std::initializer_list&)' 13 | : data(initList)
Подробнее здесь: https://stackoverflow.com/questions/786 ... for-stdmap