Size: a a a

2020 August 20

AT

Anatoly Tomilov in pro.cxx
Побитый Кирпич
Просто UB Будет
по че му?
источник

CD

Constantine Drozdov in pro.cxx
Anatoly Tomilov
если я сделаю cp /usr/include/c++/10.1.0/initializer_list $HOME/include и заинклюжу $HOME/include вперёд системных, то всё. Пространственно-временной континуум из-за парадокса порвётся в районе моего компьютера?
std::byte : unsigned char {}
можно это повторить? нет, у тебя не будет исключение strict aliasing
источник

AT

Anatoly Tomilov in pro.cxx
Constantine Drozdov
std::byte : unsigned char {}
можно это повторить? нет, у тебя не будет исключение strict aliasing
зачем же "повторить"? заменить, или в случае автора вопроса "добавить несуществующее"
источник

CD

Constantine Drozdov in pro.cxx
Anatoly Tomilov
зачем же "повторить"? заменить, или в случае автора вопроса "добавить несуществующее"
ну что будет, если ты добавишь std::byte компилятору, когда в его стандартной либе его нет? то же самое, что ты mystdbyte написал, то есть ничего
источник

AT

Anatoly Tomilov in pro.cxx
нет запрета самому дорабатывать стандартную библиотеку
источник

CD

Constantine Drozdov in pro.cxx
Anatoly Tomilov
нет запрета самому дорабатывать стандартную библиотеку
запрета нет, просто результат UB
источник

ПК

Побитый Кирпич... in pro.cxx
Anatoly Tomilov
нет запрета самому дорабатывать стандартную библиотеку
Ты туда не можешь имена добавлять
источник

AT

Anatoly Tomilov in pro.cxx
Constantine Drozdov
ну что будет, если ты добавишь std::byte компилятору, когда в его стандартной либе его нет? то же самое, что ты mystdbyte написал, то есть ничего
что значит "в его стандартной либе его нет"? Стандартная библиотека зачастую — отдельный проект
источник

CD

Constantine Drozdov in pro.cxx
Anatoly Tomilov
что значит "в его стандартной либе его нет"? Стандартная библиотека зачастую — отдельный проект
и что? в ней есть то, что может быть написано на C++ и то, что не может быть написано на C++
std::initializer_list не может быть написан, ты должен подключиться к компилятору, и это подключение реализуется со стороны компилятора
источник

AT

Anatoly Tomilov in pro.cxx
Побитый Кирпич
Ты туда не можешь имена добавлять
прям жречество какое-то. Разрабы стандартной библиотеки могут, а мне — табу. Или вы имеете ввиду лицензионные ограничения?
источник

CD

Constantine Drozdov in pro.cxx
Anatoly Tomilov
что значит "в его стандартной либе его нет"? Стандартная библиотека зачастую — отдельный проект
как объявление твоего класса может изменить правила overload resolution?
источник

ПК

Побитый Кирпич... in pro.cxx
Anatoly Tomilov
прям жречество какое-то. Разрабы стандартной библиотеки могут, а мне — табу. Или вы имеете ввиду лицензионные ограничения?
> Разрабы стандартной библиотеки могут, а мне — табу

Так и есть. Стандартная библиотека синхронизирована с компилятором
источник

AT

Anatoly Tomilov in pro.cxx
Constantine Drozdov
как объявление твоего класса может изменить правила overload resolution?
как-то может. Я почитал все хедеры и понял, что это безопасно.
источник

AT

Anatoly Tomilov in pro.cxx
Побитый Кирпич
> Разрабы стандартной библиотеки могут, а мне — табу

Так и есть. Стандартная библиотека синхронизирована с компилятором
аминь
источник

CD

Constantine Drozdov in pro.cxx
Anatoly Tomilov
как-то может. Я почитал все хедеры и понял, что это безопасно.
ты прочитал исходники, которые вообще не написаны на С++ :)
источник

AT

Anatoly Tomilov in pro.cxx
Побитый Кирпич
> Разрабы стандартной библиотеки могут, а мне — табу

Так и есть. Стандартная библиотека синхронизирована с компилятором
букву изменяют и синхронно апают счётчики версий и компиля и стандартной библиотеки, где бы не изменили. Это в стандарте прописано что ли?
источник

d

d7d1cd in pro.cxx
Взял этот пример и попробовал скомпилить. Ошибка на строке:
auto x{A{}, };
источник

CD

Constantine Drozdov in pro.cxx
в стандарте написано, что этот класс есть в стандартной библиотеке и у него есть вот такие методы
там не написано даже, что этот класс написан на С++
источник

AT

Anatoly Tomilov in pro.cxx
Constantine Drozdov
в стандарте написано, что этот класс есть в стандартной библиотеке и у него есть вот такие методы
там не написано даже, что этот класс написан на С++
тогда где UB? Из-за нарушения Стандарта какого-то конкретного компилятора?
источник

AT

Anatoly Tomilov in pro.cxx
Уже как-то абсурдно звучит
источник