переносимость кода

183
01 апреля 2018, 20:58

Для тот, чтоб задать свой вопрос, написал тривиальную структуру

struct Test {
    const static size_t sz = sizeof(system(""));
    char s[sz]; // первое системное слово
    char ss;    // второе системное слово
    Test() :  ss('?')
    {
        for (size_t i = 0; i < sz - 1; ++i)
            s[i] = 'a' + 1;
        s[sz] = sz + '0'; //инициализирую второе системное слово
    }
};

В принципе в структуре я инициализирую символ с помощью выхода за пределы массива.

Теперь вопрос: Является ли это UB конкретно для данного определения? И если у меня символ ss принимает то значение, что я присвоил s[sz], то на других системах может быть другой принцип выравниваний полей?

READ ALSO
Обработчик сигналов как член класса

Обработчик сигналов как член класса

Пишу класс работающий с трафиком RS485 портаПри открытии порта я указываю функцию, вызываемую при наличии во входном буфере порта каких-то...

145
error LNK2019: ссылка на неразрешенный внешний символ main в функции &ldquo;int __cdecl invoke_main(void)&rdquo; (?invoke_main@@YAHXZ)

error LNK2019: ссылка на неразрешенный внешний символ main в функции “int __cdecl invoke_main(void)” (?invoke_main@@YAHXZ)

Так как это должно быть приложение, то там должна быть функция int main(){}Возможно, ее роль выполняет функция go

267
Использование С/С++ в Python

Использование С/С++ в Python

Доброго времени, сутокМне надо надо написать функцию которую можно будет вызывать в Python 3

169
Как сравнить два типа ? С++

Как сравнить два типа ? С++

Мне надо сравнить два типаКак это сделать ? Допустим я беру из базы типы колонок

201