@ProCxx

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

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

Google
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

A.D.
10.09.2018
16:19:39
тогдаа я не совсем понимаю, возможность чего именно обсуждается здесь https://stackoverflow.com/questions/115703/storing-c-template-function-definitions-in-a-cpp-file
Ну, вопрос ТС: "это грязный хак VC++ или будет работать везде?" На что ему ответили, что должно везде.

Igor
10.09.2018
16:23:33
Ну, вопрос ТС: "это грязный хак VC++ или будет работать везде?" На что ему ответили, что должно везде.
Ннну да. И то ли я уже засыпаю под конец работки, то ли это противоречит словам Анатолия

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() {}

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

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
надеюсь, что с учетом модулей, больше не будет таких вопросов всуе

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
Инлайн не пойдет, там слишком много асма. Исходники будут выглядить крайне препогано
делают функцию в внутри которой asm в файлике some_asm.inl, а зачем в коде #include some_asm.inl

Крис
10.09.2018
18:10:53
делают функцию в внутри которой asm в файлике some_asm.inl, а зачем в коде #include some_asm.inl
Мало что понял из написаного, извините. Можете перефразировать?

Крис
10.09.2018
18:12:36
https://github.com/kmackay/micro-ecc
Так лучше, спасибо

Poligraph
10.09.2018
20:32:25
@crackedmind

Alexander
10.09.2018
20:32:52
@crackedmind
какая проблема?

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 с новым гцц придут новые варны

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: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
Хочу проникнуться c++ с нуля. Что посоветуете? Из других языков знаю ryby,python,js,php
Посмотри по этому тегу. За доп. помощью рекомендую обратиться вот сюда - @supapro

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

Юра Незнанов
10.09.2018
22:51:07
Хочу проникнуться c++ с нуля. Что посоветуете? Из других языков знаю ryby,python,js,php
Неужели можно "знать" 4 языка и не знать плюсы... Что значит в твоём понятии например "знаю питон$

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

Google
Denis
11.09.2018
03:05:55
Неужели можно "знать" 4 языка и не знать плюсы... Что значит в твоём понятии например "знаю питон$
Можно знать сколько угодно си-подобных языков и не знать плюсы. Похожесть синтаксиса не помогает с шаблонами и контролем памяти

Страница 2338 из 2477