Size: a a a

2021 July 08

AB

Aleksei Budyakov in supapro.cxx
Не пишу, но варианта два - либо Doxygen либо Sphinx
источник

 P

 ‌‌Gleb Pilipets... in supapro.cxx
ну окей что тогда означает «Same”?
источник

AF

Aidar Fattakhov in supapro.cxx
стандарт декларирует только поведение програмы в смысле последовательности наблюдаемых сайд эффектов
источник

AF

Aidar Fattakhov in supapro.cxx
дефолтная компиляция у вас может быть компиляцией с включенными LTO
источник

AF

Aidar Fattakhov in supapro.cxx
вобще неоптимизация линкером это скорее баг чем фича
источник

 P

 ‌‌Gleb Pilipets... in supapro.cxx
да, загуглил, но флаг может не стоять - да и оптимизации разные могут быть.

https://gcc.gnu.org/onlinedocs/gccint/LTO.html
источник

d

d7d1cd in supapro.cxx
То есть, в хедере есть только шаблонные сигнатуры, а реализации нет? Тогда срр, в который включен этот хедер, не скомпилируется.
источник

 P

 ‌‌Gleb Pilipets... in supapro.cxx
да, но он компилируется…
источник

d

d7d1cd in supapro.cxx
Я тебе не верю.
источник

d

d7d1cd in supapro.cxx
Покажи пример на годболт
источник

 P

 ‌‌Gleb Pilipets... in supapro.cxx
Есть специальные .cpp, куда я сделаю инклуд шаблонных реализаций и хедеров и инстанциирую с нужными параметрами - эти точно скомпилируются.
источник

 P

 ‌‌Gleb Pilipets... in supapro.cxx
В остальные я делаю инклуд шаблонных хедеров - обсуждение по поводу этих .cpp?
источник

АК

Александр Караев... in supapro.cxx
Если реализация заранее инстанцирована для нужного множества типов, то она может быть вынесена в .cpp
источник

 P

 ‌‌Gleb Pilipets... in supapro.cxx
ну да, а на уровне проекта они известны.

Если нужно создать новые, то в новый .cpp просто инклудим шаблонные хедеры + шаблонную реализацию и инстанциируем.
источник

d

d7d1cd in supapro.cxx
Вот пример. Не компилится.
источник

 P

 ‌‌Gleb Pilipets... in supapro.cxx
нам нужно инклудить хедер, для которого мы инстанциировали в .cpp шаблоны.
источник

d

d7d1cd in supapro.cxx
Ниче не понял
источник

АК

Александр Караев... in supapro.cxx
// header
template <class T> T foo();

// cpp
#include "header"
template <class T> T foo() { /* impl */ }

template int foo<int>();

// another cpp
#include "header"

int a = foo<int>();
а вот - компилится
источник

 P

 ‌‌Gleb Pilipets... in supapro.cxx
да, вот так )
источник

AS

Anatoly Shirokov in supapro.cxx
Это работает, но для шаблонов это скорее антипаттерн.
источник