реклама на сайте
подробности

 
 
> IAR AVR и инициализация массива объектов
alexp74
сообщение Dec 17 2015, 19:56
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 20-05-15
Пользователь №: 86 787



Добрый день.

Возникла необходимость перенести проект для AVR с AtmelStudio (GCC) на IAR AVR.
Столкнулся с такой проблемой. Нужно инициализировать массив объектов с константным членом внутри. Вроде как правильно это делать в списке инициализации. В GCC нет проблем. Правда студия предупреждает "extended initializer lists only available with -std=c++11 or -std=gnu++11". А как можно в IAR? Кто сталкивался?

Пример кода для AtmelStudio:

Код
class A
{
    private:
    char * const portx;
    
    public:
    A() : portx(0) {};
    A(char * const port) : portx(port) {};
};

class B
{
    private:
    A m_b[2];
    
    public:
    B();
};

char port;
char * const pport = &port;

B::B() : m_b { A(pport), A(pport) }
{
}

int main()
{
    B b();

    return 0;
}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Dec 18 2015, 07:18
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(alexp74 @ Dec 17 2015, 22:56) *
А как можно в IAR? Кто сталкивался?
А никак. Предыдущий Стандарт допускал при инициализации массива в списке инциализации класса только вызов конструкторов без параметров. Или обходными путями, как Евгений предложил.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
alexp74
сообщение Dec 18 2015, 19:31
Сообщение #3





Группа: Участник
Сообщений: 11
Регистрация: 20-05-15
Пользователь №: 86 787



Цитата(Сергей Борщ @ Dec 18 2015, 09:18) *
А никак. Предыдущий Стандарт допускал при инициализации массива в списке инциализации класса только вызов конструкторов без параметров. Или обходными путями, как Евгений предложил.

Да, согласен. Проще убрать const. Спасибо.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 13:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01357 секунд с 7
ELECTRONIX ©2004-2016