Невозможно преобразовать <Список инициализаторов с инцелевым покрытием> в классC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно преобразовать <Список инициализаторов с инцелевым покрытием> в класс

Сообщение Anonymous »

Я пишу свой пользовательский инициализатор и пары. Тем не менее, я решил проблему преобразования неудачи: < /p>
error: could not convert ‘{test::pair(std::__cxx11::basic_string(((const char*)"a"), std::allocator()), std::__cxx11::basic_string(((const char*)"b"), std::allocator())), test::pair(std::__cxx11::basic_string(((const char*)"c"), std::allocator()), std::__cxx11::basic_string(((const char*)"d"), std::allocator()))}’ from ‘
’ to ‘test::pair’
71 | std::string> mp = {test::pair("a", "b"), test::pair("c", "d")};

< /code>
Я не знаю, чтобы решить эту проблему. < /p>
#include
#include

namespace test {

template
class initializer_list {
public:
typedef _E value_type;
typedef const _E& reference;
typedef const _E& const_reference;
typedef size_t size_type;
typedef const _E* iterator;
typedef const _E* const_iterator;

private:
iterator _M_array;
size_type _M_len;

// The compiler can call a private constructor.
constexpr initializer_list(const_iterator __a, size_type __l)
: _M_array(__a), _M_len(__l) {}

public:
constexpr initializer_list() noexcept
: _M_array(0), _M_len(0) {}

constexpr size_type size() const noexcept { return _M_len; }

constexpr const_iterator begin() const noexcept { return _M_array; }

constexpr const_iterator end() const noexcept { return begin() + size(); }
};

template
constexpr const _Tp* begin(initializer_list __ils) noexcept { return __ils.begin(); }

template
constexpr const _Tp* end(initializer_list __ils) noexcept { return __ils.end(); }

template
class pair {
public:
p1 first;
p2 second;

pair(p1 f, p2 s) : first(f), second(s) {}

void display() const {
std::cout

Подробнее здесь: https://stackoverflow.com/questions/794 ... t-to-class
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»