
Igor
10.09.2018
16:03:43
гм, а я видимо что-то упустил, разве не было такой фичи что конкретную специализацию шаблона можно упрятать в отдельную единицу трансляции, чтобы не перекомпилировать её всё время если она часто используется?

Anatoly
10.09.2018
16:05:00

Igor
10.09.2018
16:06:39
а, т.е. либо множество бесконечно и тогда всё должно быть видимо в хедере; либо множество сугубо ограничено, шаблонной реализации не существует, и тогда все конкретные специализации можно упрятать в отдельную TU?

Anatoly
10.09.2018
16:08:06

Google

Побитый
10.09.2018
16:11:57

Igor
10.09.2018
16:12:37
Да, именно так
тогдаа я не совсем понимаю, возможность чего именно обсуждается здесь
https://stackoverflow.com/questions/115703/storing-c-template-function-definitions-in-a-cpp-file

Nikita
10.09.2018
16:12:41
в супепро не отвечают :(
чуваки заясните плиз за различия .cmake и cmakelists.txt, когда что нужно использовать?
конкретный кейс: хочу добавить очередной таргет в проект, завёл папочку под него и теперь вопрос какой файл создавать: newtarget.cmake или CMakeLists.txt

Igor
10.09.2018
16:13:47
как правило, .cmake - вспомогательные скрипты, CMakeLists - более или менее соответствуют таргетным частям проекта
если хочешь один CMakeLists.txt с кучей add_subdirectory(mylib), в каждой по либе/приложеньке/проекту - создавай в каждой из подпапок по CMakeLists.txt

Nikita
10.09.2018
16:15:47

Anatoly
10.09.2018
16:16:05

A.D.
10.09.2018
16:19:39

Igor
10.09.2018
16:23:33

A.D.
10.09.2018
16:25:19

Dmitry
10.09.2018
16:25:42

Google

Dmitry
10.09.2018
16:27:38
Хотя не, экстерн наверное можно только весь класс...

Anatoly
10.09.2018
16:28:22
Так, подобьем итог, полные специализации могут присутствовать в TU, в этом случае линкер найдет нужные специализации.

Igor
10.09.2018
16:28:35
Все, доперло. ТС на стеке не хотел шаблонную реализацию вместе со специализациями, ТС хотел спрятать всю реализацию шаблона в цппшку и сделать чтобы она использовалась только для двух типов и ни для чего боле

Ilia
10.09.2018
17:29:13


Anatoly
10.09.2018
17:30:55

Ilia
10.09.2018
17:35:09
Пока модули то не ввели...

Aidar
10.09.2018
17:37:35
Он имеет ввиду можно ли
template<T> class foo{
void bar(){}
}
void foo<int>::bar();
cpp:
void foo<int>::bar() {}

Ilia
10.09.2018
17:38:06

Assasin
10.09.2018
17:41:27
как, разве нельзя специализацию отдельно линковать? Вроде б можно было

Anatoly
10.09.2018
17:42:02

Assasin
10.09.2018
17:43:15
да, так вопрос то про полные и есть

Ilia
10.09.2018
17:43:28

Assasin
10.09.2018
17:44:03
извиняюсь)

Google

Ilia
10.09.2018
17:44:42
Но с учётом того, что современные компиляторы могут делать глобальную оптимизацию, это все как-то не особо нужно.

Assasin
10.09.2018
17:45:13
надеюсь, что с учетом модулей, больше не будет таких вопросов всуе

Ilia
10.09.2018
17:45:14

Assasin
10.09.2018
17:45:54
блин, жду модулей еще с C++11, когда ж уже наконец)

Крис
10.09.2018
18:00:06
Я правильно понимаю если часть проекта на асме, а часть на плюсах, то тут нужно make приплетать и в мейке еще и дергать баш скрипт который дернет ассемблер? Или можно как-то проще

Matwey
10.09.2018
18:03:43
inline assembler?
Makefile это и есть баш-скрипт, можешь прямо оттуда дернуть ассемблер

Pavel
10.09.2018
18:04:43
или дёргать всё из баша без мейка

Крис
10.09.2018
18:05:29
inline assembler?
Инлайн не пойдет, там слишком много асма. Исходники будут выглядить крайне препогано

Chiveson
10.09.2018
18:10:17

Крис
10.09.2018
18:10:53

Chiveson
10.09.2018
18:11:17

Крис
10.09.2018
18:12:36

Stanislav
10.09.2018
18:12:42

Poligraph
10.09.2018
20:32:25
@crackedmind

Alexander
10.09.2018
20:32:52

Stanislav
10.09.2018
20:32:57

Alexander
10.09.2018
20:33:05
пока спама не было же ?

Poligraph
10.09.2018
20:33:11
Ну лан, дождемся спама

Google


Igor
10.09.2018
20:41:38
есть проект на цмаке, в нем есть примерно такие строчки:
macro(FIND_LINUX_LIBRARIES libraries)
execute_process(COMMAND pkg-config --cflags ${libraries} OUTPUT_VARIABLE FLL_CFLAGS RESULT_VARIABLE RV_CFLAGS)
STRING(STRIP "${FLL_CFLAGS}" FLL_CFLAGS)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLL_CFLAGS}")
...
FIND_LINUX_LIBRARIES("gmodule-2.0 gtk+-2.0 gthread-2.0 libnotify xscrnsaver cairo")
если распечатать найденное, то получится так:
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/libffi-3.2.1/include -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/uuid
вопрос, как позаменять -I на -isystem?
не хочу вырубать -Wall -Werror в проекте, но ещё более не хочу исправлять мириады /usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:63:8: error: unnecessary parentheses in declaration void (*__gtk_reserved5);
можно конечно форсировать -Wno-error=parentheses, но это как-то неспортивно, заткнёт предупреждения в проектовом коде, да и вообще а вдруг девчонки^W с новым гцц придут новые варны


Chiveson
10.09.2018
20:46:53
там в комментах про версии холиварят

Igor
10.09.2018
20:51:25
это как будто бы не то: CMAKE_INCLUDE_SYSTEM_FLAG_CXX говорит, как называется флаг которым будут препендиться директории указанные в include_directories(SYSTEM xx yy zz), а не что нужно -I/usr/lib/gtk-2.0 мутировать в -isystem/usr/lib/gtk-2.0, не?

Egor
10.09.2018
20:51:58
в с++17 directory_iterator маски учитывает в пути?

Igor
10.09.2018
21:05:33

Stanislav
10.09.2018
21:06:10

Igor
10.09.2018
21:08:19
-I с низким приоритетом порядка поиска заголовочных файлов, и в нём не действует -Werror?
буду рад новой информации

Chiveson
10.09.2018
21:08:24
pkg-config - вот этого парня через env нельзя натсроить?

Igor
10.09.2018
21:10:05
вот я тоже начал было смотреть в эту сторону, но
> We should be very careful when altering include flags provided by other people because that can go wrong
в гуглогруппах мезона меня слегка поколебало

Aleksey
10.09.2018
21:52:29
Доброй ночи не спящим
Хочу проникнуться c++ с нуля. Что посоветуете? Из других языков знаю ryby,python,js,php
Книни/курсы/скринкасты

Alexander
10.09.2018
21:54:30
#books

Aleksey
10.09.2018
21:54:48
Спасибо

Alexander
10.09.2018
21:55:06

Aleksey
10.09.2018
21:55:58
Приянял, большое спасибо))

Юра Незнанов
10.09.2018
22:51:07

Sergei
10.09.2018
23:08:14
Пацаны, извлечь архив zip подскажите либу или без её можно как то, c++

Google

Anton
10.09.2018
23:12:47

Ilia
11.09.2018
02:51:23

Denis
11.09.2018
03:05:55