@ProCxx

Страница 2283 из 2477
Oleg
15.08.2018
17:43:34
Плюсач, а насколько это нормально в шаблонном классе вызывать методы его параметра, типа такого template<typename T> struct A: public T { void method() { T::method1(); } }

Oleg
15.08.2018
17:45:20
Хм, а правда.

А зачем я там наследовался

Google
Oleg
15.08.2018
17:46:44
А, что бы не создавать объект Т явно

Но все равно тут композиция лучше ляжет

Constantine
15.08.2018
17:47:32
А, что бы не создавать объект Т явно
Если вам нужен объект T, то основная идея там (а) все-таки создаем (б) смотрим unique_ptr<Type, Deleter> в части Deleter (там используется понятие compressed pair)

Если кратко, то объект без полей требует места, но если его соединить с другим, то уже не требует (empty base optimization)

Oleg
15.08.2018
17:51:44
У меня там класс, который менеджерит соединение пл рпс. И есть класс, который должен из этого соединения получать данные.и ловить разрывы. Классов второго типа - 2 разных. Вот я и решил сделатьрпс слой шаблоном с параметром класса второго типа в качестве шаблонного парамтера

Constantine
15.08.2018
17:52:32
Вроде все правильно делаете

Oleg
15.08.2018
17:53:16
Лол, у меня и получился этот полиси класс.

Constantine
15.08.2018
17:53:37
Policy class обычно не имеет полей

Oleg
15.08.2018
17:54:02
Я уже сбился со счета о скольки паттернах я узнал уже после того, как реализовал что-то)

Constantine
15.08.2018
17:54:05
У вас пока прокся какая-то висит, надо исходник примерно видеть, чтобы понять, как это там дальше развязывать

Oleg
15.08.2018
17:54:27
Ну, не прокся, потому что с отдельной логикой

Спасибо за помощт

Constantine
15.08.2018
17:54:47
Я уже сбился со счета о скольки паттернах я узнал уже после того, как реализовал что-то)
Ой, мы как-то раз 300kloc кода перелопатили, а потом узнали, как называется то, что мы на самом деле внедряли

Google
Oleg
15.08.2018
17:55:06
Ыыы

Constantine
15.08.2018
17:56:15
Собственно, там был подтип вот этой парадигмы https://en.wikipedia.org/wiki/Reactive_programming

Nik
15.08.2018
18:11:14
xperf емнип тоже
xperf можно настроить на точную обработку heapalloc и heapfree. Еще можно через gflags включить отладочную кучу, зацепиться wingdb и смотреть глазками на мир полный боли

Yarique
15.08.2018
21:09:35
Ребят, есть у кого опыт переноса проекта с gcc5 на gcc8 в рамках одной и той же системы? Если я собрал gcc8 из сорсов надо ли все внешние зависимости(библиотеки среди которых boost из репы: Boost.Asio, Boost.Thread, Boost.Filesystem, OpenCv и прочее из репы) проекта пересобирать gcc8, чтобы сам проект собирать gcc8 в дальшейшем у дистрибутива в репозитории самый старый только gcc5 ...собирал gcc8.2 так: cd gcc-8.2.0 contrib/download_prerequisites cd .. mkdir build && cd build ../gcc-8.2.0/configure -v --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --prefix=/usr/local/gcc-8.2 --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib --program-suffix=-8.2 make -j5 make install cd ~ echo 'export PATH=/usr/local/gcc-8.2/bin:$PATH' >> .bashrc echo 'export LD_LIBRARY_PATH=/usr/local/gcc-8.2/lib64:$LD_LIBRARY_PATH' >> .bashrc source .bashrc type gcc-8.2 архитектура оси x86_64

Egor
15.08.2018
21:14:25
но вроде не обязательно?

Stanislav
15.08.2018
21:15:05
Egor
15.08.2018
21:15:22
аби со строками сильно менялось 4.9 на 5, а ещё когда?

или под каждую мажорную лучше отдельно собирать?

Alexander
15.08.2018
21:21:43
а разве gcc гарантирует abi совместимость между релизами?

Egor
15.08.2018
21:22:03
я почему-то так думал

Grigor
15.08.2018
21:40:31
Суперспокойно живется когда все вокруг собрано одним компилером

/* только если в нем багов нет */

Yarique
15.08.2018
21:42:37
https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html пунктов 3 и 4 достаточно

в 4м GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9 GCC 6.1.0: GLIBCXX_3.4.22, CXXABI_1.3.10 GCC 7.1.0: GLIBCXX_3.4.23, CXXABI_1.3.11 GCC 7.2.0: GLIBCXX_3.4.24, CXXABI_1.3.11 GCC 8.0.0: GLIBCXX_3.4.25, CXXABI_1.3.11

abi менялось офк

Stanislav
15.08.2018
21:43:40
WARNING: In GCC 8.1 the second change mistakenly also affects classes with a deleted copy constructor and defaulted trivial move constructor (bug c++/86094). This issue is fixed in GCC 8.2 (-fabi-version=13).

хм

Yarique
15.08.2018
21:43:51
насколько совместимы эти изменения я чёт не понял, утром прочту

Google
Stanislav
15.08.2018
21:44:31
ou can test whether these changes affect your code with -Wabi=11 (or -Wabi=12 in GCC 8.2 for the third issue); if these changes are problematic for your project, the GCC 7 ABI can be selected with -fabi-version=11.

Alexander
15.08.2018
21:46:02
вот из-за таких вещей в conan и приянли решение, чтобы всё было собрано одним компилятором

Egor
15.08.2018
21:46:27
я тоже на этом остановился

для гцц только для мажорных версий

Andrei
16.08.2018
07:43:18
Парни, как в cmake можно установить working directory для вижлы при генерации проекта? Не могу найти

Парни, как в cmake можно установить working directory для вижлы при генерации проекта? Не могу найти
решил вопрос ручками. с версии 3.8 есть какая-то штука VS_DEBUGGER_WORKING_DIRECTORY, я так понимаю, тоже должна подойти. Если кому-то интересно

Igor
16.08.2018
08:15:09
@WonderWendy вакансии через @AlexFails в отдельный канал

P
16.08.2018
08:18:37
привет, есть у кого тур с++ второе издание поделиться?

Antony
16.08.2018
08:22:59
а разве gcc гарантирует abi совместимость между релизами?
Гарантируют что старые бинарники будут работать на новой верси libstdc++ без перекомпиляции

Как раз недавно сталкивался с проблемой - Boost.regex собранный GCC не линковался с бинарником, собранным Clang но использующим ту же стандартную библиотеку чтои GCC.

* случай у меня конечно более ногострельный, чем у Yarique

Igor
16.08.2018
08:28:50
@pr_honey

Antony
16.08.2018
09:03:05
А из за чего не линковался? Я могу себе представить, чтобы линковался, но c ODR-violation.
GCC и Clang по разному работают с external template (кажется что они их по разному манглят, но точно не уверен)

EG
16.08.2018
09:10:32
КТо-нибудь добавлял в vcpkg свой package?

EG
16.08.2018
09:12:30
@crackedmind
Благодарю

Google
Anatoly
16.08.2018
09:15:42
КТо-нибудь добавлял в vcpkg свой package?
добавлял, а что конкретно интересует? там by example достаточно все просто: https://github.com/Microsoft/vcpkg/pull/2372

EG
16.08.2018
09:34:04
добавлял, а что конкретно интересует? там by example достаточно все просто: https://github.com/Microsoft/vcpkg/pull/2372
Я по мануалу решил добавить tinyspline, но по умолчанию исходники компилируются с /WX и с таким параметром исходники не собираются. Я нашёл в portfile.cmake vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA # Disable this option if project cannot be built with Ninja # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2 # OPTIONS_RELEASE -DOPTIMIZE=1 # OPTIONS_DEBUG -DDEBUGGABLE=1 ) в мануале написано, что лучше всё же собирать с NINJA, поэтому мне интересно стало, с какими параметрами NINJA собирает, можно ли их изменить?

Stolyarchuk
16.08.2018
10:30:07
с параметрами, которые сгенерил cmake

Nikita
16.08.2018
11:07:57
Чуваки а можно как нибудь внутри cmake проверить, что поддерживается тот или иной стандарт? Мне нужно выключить сборку одного из проектов если не поддерживается c++14

EG
16.08.2018
11:09:21
с параметрами, которые сгенерил cmake
Я не очень знаю когда cmake генерит при добавлении пакета vcpkg

Nikita
16.08.2018
11:09:26
(должно работать и с msvc в том числе)

elias
16.08.2018
11:10:19
Есть ли среди вас сторонники такого кодинг-стайла, в котором именование членов класса начинается с префикса "m_"? Если вы используете такой префикс, то какие плюсы находите? Я читал, что так проще с автозаполнением - IDE подскажет по "m_" доступные члены. А с постфиксом "_" менее удобно в плане подсказок.

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