Russian Qt Forum
Ноябрь 23, 2024, 22:14 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt и clang  (Прочитано 4657 раз)
tux
Global Moderator
Бывалый
*****
Offline Offline

Сообщений: 404



Просмотр профиля
« : Март 09, 2020, 14:38 »

Доброго времени суток!
Есть проект, в котором встречается инициализация такого:
Код:
    typedef struct tagRS_BLOCKINFO
    {
        int ncRSBlock;
        int ncAllCodeWord;
        int ncDataCodeWord;

    } RS_BLOCKINFO;

    typedef struct tagQR_VERSIONINFO
    {
        int nVersionNo;
        int ncAllCodeWord;

        int ncDataCodeWord[4];

        int ncAlignPoint;
        int nAlignPoint[6];

        RS_BLOCKINFO RS_BlockInfo1[4];
        RS_BLOCKINFO RS_BlockInfo2[4];

    } QR_VERSIONINFO;

    static QR_VERSIONINFO QR_VersonInfo[] = {
        {
            0
        },
        {
            1, // Ver.1
            26,   19,   16,   13,    9,
            0,   0,   0,   0,   0,   0,   0,
            1,  26,  19,
            1,  26,  16,
            1,  26,  13,
            1,  26,   9,
            0,   0,   0,
            0,   0,   0,
            0,   0,   0,
            0,   0,   0
        }
    };
Если собирать это с помощью gcc, то всё нормально.
Но, если попробовать собрать с помощью clang, то будет куча предупреждений, типа "suggest braces around initialization of subobject"
Понятно, что можно бороться с этим, с помощью опций компилятора, но это как-то неправильно. Как мне кажется.
Как с таким правильно бороться? Может можно что дописать в .pro файл?
Записан

kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Март 09, 2020, 15:32 »

разве что стандартные опции предупреждений в настройках Креатора подправить
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
tux
Global Moderator
Бывалый
*****
Offline Offline

Сообщений: 404



Просмотр профиля
« Ответ #2 : Март 09, 2020, 15:51 »

разве что стандартные опции предупреждений в настройках Креатора подправить
Это не очень решение. Если вдруг надо кому то передать проект, то нужно будет или README на эту тему писать или выслушивать жалобы на "а что у тебя тут 100500 предупреждений. Говнокодс..."
Пока вижу (как временное решение) написать программу, которая просто разберёт такой массив и иницализирует уже обычным методом. Да - код будет длиннее и запустаннее...
Может всё-таки есть какое-то элегантное решение?
Записан

Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Март 09, 2020, 16:02 »

Это не очень решение. Если вдруг надо кому то передать проект, то нужно будет или README на эту тему писать или выслушивать жалобы на "а что у тебя тут 100500 предупреждений. Говнокодс..."
Значит не в те руки проект попал, напрасно давали. Настоящие эстеты понимают (и ценят) что приложение имеет солидный стаж
Записан
tux
Global Moderator
Бывалый
*****
Offline Offline

Сообщений: 404



Просмотр профиля
« Ответ #4 : Март 09, 2020, 16:09 »

Ага. Т.е. предлагается "забить"? Ибо это "нинужно" истинным ценителям кода?
Не. Должно быть решение...
Записан

Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Март 09, 2020, 16:42 »

Ага. Т.е. предлагается "забить"? Ибо это "нинужно" истинным ценителям кода?
Да. Старые структуры навевают теплые воспоминания и украшают новомодный но пижонский код  Улыбающийся
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #6 : Март 09, 2020, 19:03 »

Цитировать
Понятно, что можно бороться с этим, с помощью опций компилятора
тогда или так (QMAKE_C[XX]FLAGS) или дописать дополнительные фигурные скобки
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
tux
Global Moderator
Бывалый
*****
Offline Offline

Сообщений: 404



Просмотр профиля
« Ответ #7 : Март 09, 2020, 20:33 »

тогда или так (QMAKE_C[XX]FLAGS) или дописать дополнительные фигурные скобки
Дописал 100500 фигурных скобок.
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.096 секунд. Запросов: 23.