Size: a a a

2020 May 05

m

magras in pro.cxx
Constantine Drozdov
> Если в следующей версии компилятор станет экстрасенсом и сможет увидеть код в dll, то что уб возникнет?
Да
Если в функции стоит placement new, как описывалось раньше, все же будет в порядке. Так?
источник

CD

Constantine Drozdov in pro.cxx
magras
Если в функции стоит placement new, как описывалось раньше, все же будет в порядке. Так?
Да
источник

CD

Constantine Drozdov in pro.cxx
Но, к сожалению, в dll нет вызова placement new, потому что лайфтайм объектов в С начинается другим образом
источник

CD

Constantine Drozdov in pro.cxx
Побитый Кирпич
Считаю, что это неверное понимание уб
Что характерно, любой вызов WriteFile скорее всего тоже убнет, окажется, что там бесконечный цикл без эффектов из списка С++
источник

CD

Constantine Drozdov in pro.cxx
Не осуществляет доступ к библиотечным функциям IO, нехорошая функция
источник

ПК

Побитый Кирпич... in pro.cxx
Constantine Drozdov
Считай :) Стандарт С++ не регламентирует экстрасенсорные способности и машинный код в dll (пока что)
Весь смысл писать код без уб как раз и состоит в том, чтобы в рамках одного стандарта на разных компиляторах код работал одинаково (по стандарту).
То есть факт уб зависит только от стандарта и кода, но не от конкретного компилятора
источник

CD

Constantine Drozdov in pro.cxx
Побитый Кирпич
Весь смысл писать код без уб как раз и состоит в том, чтобы в рамках одного стандарта на разных компиляторах код работал одинаково (по стандарту).
То есть факт уб зависит только от стандарта и кода, но не от конкретного компилятора
Стандарт не распространяется на код, не написанный на С++ просто потому, что этот код не может следовать виртуальной машине С++
источник

IA

Ivan Azoyan in pro.cxx
Я помню как-то взял по копии строку два раза на std::begin(get()) и std::end(get()), долго искал баг. Ну как долго, несколько часов
источник

CD

Constantine Drozdov in pro.cxx
Побитый Кирпич
Весь смысл писать код без уб как раз и состоит в том, чтобы в рамках одного стандарта на разных компиляторах код работал одинаково (по стандарту).
То есть факт уб зависит только от стандарта и кода, но не от конкретного компилятора
Более того, если ты внимательно посмотришь на объявления, ты неожиданно обнаружишь, что в ISO C++ ты вообще не можешь использовать функцию GetTokenInformation, потому что с точки зрения C++ нет команды импорта из dll
источник

ПК

Побитый Кирпич... in pro.cxx
Constantine Drozdov
Более того, если ты внимательно посмотришь на объявления, ты неожиданно обнаружишь, что в ISO C++ ты вообще не можешь использовать функцию GetTokenInformation, потому что с точки зрения C++ нет команды импорта из dll
Да, но есть implementation defined семантика в рамках платформы
источник

IA

Ivan Azoyan in pro.cxx
Можете честно ответить на вопрос. У вас в прод уходит бинарь с -O0 -g?
источник

CD

Constantine Drozdov in pro.cxx
Побитый Кирпич
Да, но есть implementation defined семантика в рамках платформы
Ну вот, и в рамках любой implementation defined семантики вызова С функции правила C++ по типизации объектов в памяти С функциями не соблюдаются. Можешь также поинтересоваться, что там с С++ исключениями, которые пытаются вылезти из extern C
источник

ПК

Побитый Кирпич... in pro.cxx
Ivan Azoyan
Можете честно ответить на вопрос. У вас в прод уходит бинарь с -O0 -g?
Смотря что считать продом
источник

IA

Ivan Azoyan in pro.cxx
Побитый Кирпич
Смотря что считать продом
Скажем так, работающая программа выполняющая свои бизнес-задачи
источник

ПК

Побитый Кирпич... in pro.cxx
Ivan Azoyan
Скажем так, работающая программа выполняющая свои бизнес-задачи
Тогда уходит
источник

NP

Nikita Provotorov in pro.cxx
Ivan Azoyan
Можете честно ответить на вопрос. У вас в прод уходит бинарь с -O0 -g?
У нас RelWithDebInfo
источник

CD

Constantine Drozdov in pro.cxx
У нас -O2 с сохранением UTILS_ASSERT который нужен для прогонки тестов на релизе
источник

IA

Ivan Azoyan in pro.cxx
Просто, я вот думаю. Все хвалят плюсы за скорость, но отдавать с -О0 -g это же пипец же. Абсолютно лишает всех достоинств
источник

IA

Ivan Azoyan in pro.cxx
Nikita Provotorov
У нас RelWithDebInfo
Ну там же всё равно инлайнятся функции и ты можешь не понять откуда упало
источник

CD

Constantine Drozdov in pro.cxx
У нас не падает :)
источник