Я не совсем понял этот момент, можете пожалуйста пояснить?
unsigned i;
, что тоже неоднократно отражалось в здешних вопросах. И таких вольностей у GCC много, всего не упомнишь.Я так понял, что под linux/windows предпочтительнее тоже использовать clang
То есть похоже, что Dolarun прав.
inline
[?] определяет спецификатор, которым помечаются сущности со слабым внешним связыванием. Связывание внешнее, поэтому для таких сущностей обязательным является требование ODR. В это же самое время связывание обозначено как слабое, это означает что проверка на соответствие ODR для таких сущностей проходит не в момент чтения определения сущности из объектного файла, а в момент встраивания этой сущности.inline
имеет далеко опосредованное отношение.Если бы всё было так просто - их просто скопировали бы на старте
Подозреваю что можно найти готовые либы для этого дела кстати
ты меня спросил, при чем тут параллелизм
Дальше ты спросил, зачем мне геймдев
Мне просто нужны геймдев материалы и примеры красивого кода
а с const char* я так понимаю, это невозможно
const char*
узнать точный размер структуры MqttConfig
невозможно? Размер указателя фиксирован, структура из указателей будет правильно выравнена и будет иметь правильный фиксированный размер. Скорее всего в твоем случае твой конфиг будет занимать 20Б.Насчет литерала - я так понимаю, речь о '\0' ?
PubSubClient& PubSubClient::setServer(const char * domain, uint16_t port)
char password[20] = "password";
.const char*
для своих полей. Пусть в них хранятся адреса размещений литералов, которыми ты инициализируешь поля сейчас. Т.е. в плане инициализации ничего не поменяется, поменять нужно только тип полей. clang: error: linker command failed with exit code 1 (use -v to see invocation)
Например, П5.1 - Любые оскорбительные формулировки запрещены. За тобой уже третье нарушение в одном вопросе.