0 / 0 / 0
Регистрация: 16.08.2022
Сообщений: 4

Ошибка cannot convert ‘<brace-enclosed initializer list>’

24.08.2022, 07:44. Показов 1286. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте, имею проблему в следующем коде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 // Once a full message is received, add it to the incoming queue
            void AddToIncomingMessageQueue()
            {               
                // Shove it in queue, converting it to an "owned message", by initialising
                // with the a shared pointer from this connection object
                if(typeOwn_ == type_owner::_server)       
                    m_qMessagesIn.push_back({ this->shared_from_this(), read_msg_ });       
                else
                    m_qMessagesIn.push_back({ nullptr, read_msg_ }); <- здесь
          
                // We must now prime the asio context to receive the next message. It 
                // wil just sit and wait for bytes to arrive, and the message construction
                // process repeats itself. Clever huh?
                ReadHeader();
            }
выдаёт такое сообщение об ошибке:
Code
1
2
src/session.hxx:403:64: error: cannot convert ‘<brace-enclosed initializer list>’ to ‘const network::owned_message&’
  403 |                                         m_qMessagesIn.push_back({ nullptr, read_msg_ });
пытался найти что-то похожее в гугле, но ненашел. Подскажите в чём проблема
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.08.2022, 07:44
Ответы с готовыми решениями:

Ошибка: error: cannot convert '<brace-enclosed initializer list>' to 'int
всем привет! не могу разобраться, что это за ошибка void sum_element() { const int size = 10; int arr = {0}; int...

Brace enclosed initializer list - то работает то нет, не могу понять правило
Привет всем! Вымышленный пример: class __car { public: struct { const uint16_t displacement = 1594; struct { ...

Ошибка: array must be initialized with a brace-enclosed initializer
Приветствую, форумчане. Начал изучать С++ и у меня возникла проблема. Пытался прикрепить поинтер к массиву arr_0, но у меня появилась...

7
фрилансер
 Аватар для Алексей1153
6462 / 5670 / 1131
Регистрация: 11.10.2019
Сообщений: 15,096
24.08.2022, 08:19
ExtraSensor, покажи определение m_qMessagesIn

если пытаешься создать элемент при помощи передачи аргументов в конструктор элемента, то это делается так

C++
1
m_qMessagesIn.emplace_back( this->shared_from_this(), read_msg_ );
Цитата Сообщение от ExtraSensor Посмотреть сообщение
<- здесь
а тут, я полагаю, нужно передать не nullptr, а {}
0
0 / 0 / 0
Регистрация: 16.08.2022
Сообщений: 4
24.08.2022, 10:14  [ТС]
Алексей1153,
C++
1
2
3
4
5
6
7
struct owned_message
    {
        std::shared_ptr<session> remote = nullptr;
        message msg;
    };  
 
tsqueue<owned_message> m_qMessagesIn;
0
фрилансер
 Аватар для Алексей1153
6462 / 5670 / 1131
Регистрация: 11.10.2019
Сообщений: 15,096
24.08.2022, 10:22
Цитата Сообщение от ExtraSensor Посмотреть сообщение
= nullptr;
вот это лишнее, кстати. У класса есть конструктор
0
0 / 0 / 0
Регистрация: 16.08.2022
Сообщений: 4
25.08.2022, 07:16  [ТС]
убрал это нафиг
Цитата Сообщение от ExtraSensor Посмотреть сообщение
C++

struct owned_message
{
std::shared_ptr<session> remote = nullptr;
message msg;
};
tsqueue<owned_message> m_qMessagesIn;
использовал контейнер std:air
C++
1
typedef std::pair<std::shared_ptr<session>, message> owned_message;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void AddToIncomingMessageQueue()
        {   
            owned_message tmp;          
            // Shove it in queue, converting it to an "owned message", by initialising
            // with the a shared pointer from this connection object
            if(typeOwn_ == type_owner::_server)
            {
                std::make_pair(this->shared_from_this(), read_msg_ );
                std::cout << "server add msg in queue.";        
            }       
            else
            {
                std::make_pair(nullptr, read_msg_ );
                std::cout << "client add msg in queue.";  
            }
                // We must now prime the asio context to receive the next message. It 
                // wil just sit and wait for bytes to arrive, and the message construction
                // process repeats itself. Clever huh?
                m_qMessagesIn.push_back(tmp);
                ReadHeader();
        }
стало работать
0
фрилансер
 Аватар для Алексей1153
6462 / 5670 / 1131
Регистрация: 11.10.2019
Сообщений: 15,096
25.08.2022, 08:47
ExtraSensor, сделал то же самое, что и было, только теперь неудобно

а всего-то надо было
Цитата Сообщение от ExtraSensor Посмотреть сообщение
m_qMessagesIn.push_back({ {}, read_msg_ }); <- здесь
0
0 / 0 / 0
Регистрация: 16.08.2022
Сообщений: 4
26.08.2022, 12:51  [ТС]
Алексей1153, не, так я пробовал уже, не сработало. та же самая ошибка. плюс там где указатель передавать нужно тоже ругается.
0
фрилансер
 Аватар для Алексей1153
6462 / 5670 / 1131
Регистрация: 11.10.2019
Сообщений: 15,096
26.08.2022, 13:29
ExtraSensor, https://onlinegdb.com/9Hnrghgsc
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.08.2022, 13:29
Помогаю со студенческими работами здесь

Попытка инициализации std::vector посредством brace-enclosed initializer list вызывает ошибку: как это можно исправить?
При создание вектора, пытаюсь сразу задать начальные значения: std::vector&lt;int&gt; c{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; но компилятор (MinGW...

Инициализация массива: ошибка "array must be initialized with a brace-enclosed initializer"
Вот собственно сама ошибка: &quot;array must be initialized with a brace-enclosed initializer&quot; Сама программа должна выводить квадрат в...

Как ввести полученные данные в массив? Ошибка: brace-enclosed initializer list
Здравствуйте. Есть вопрос: что я делаю не так, что вылезает ошибка из названия? Пожалуйста, научите меня полученные данные b,c,d,e,f...

Ошибка C2552: non-aggregates cannot be initialized with initializer list
помогите пожалуйста: struct sAccInt { Account AccFrom; Account AccTo; sAccInt() : AccFrom(0L), AccTo(0L) ...

Ошибка компиляции "assigning to an array from an initializer list"
Выбивает ошибку:|error: assigning to an array from an initializer list| #include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru