❤1
#cpp
Практический пример перегрузки operator,().
https://www.boost.org/doc/libs/1_76_0/libs/assign/doc/index.html
Практический пример перегрузки operator,().
https://www.boost.org/doc/libs/1_76_0/libs/assign/doc/index.html
#cpp #stackoverflow
Вы просто посмотрите, как сексуально он реализован.
https://stackoverflow.com/questions/67959239/what-is-complexity-of-stdcommon-type
Вы просто посмотрите, как сексуально он реализован.
https://stackoverflow.com/questions/67959239/what-is-complexity-of-stdcommon-type
🔥1
#cpp
От @gepardius.
"Расскажу про include-what-you-use. Этот инструмент позволяет делать следующее:
- находить неиспользуемые
- находить
Звучит довольно полезно, поэтому я поставил его из репозиториев Debian и решил запустить:
Во-первых, он хотел выкинуть
Во-вторых, иногда он предлагал использовать какие-то странные include'ы вроде
В-четвертых, он много ругался на код Dodecahedron'а. Этот код я не хочу исправлять, в как отключить проверку для некоторых файлов, я не нашел.
В общем, ложных срабатываний в результатах получилось довольно много, поэтому я не стал добавлять include-what-you-use в CI. Просто буду его запускать время от времени и смотреть.
Ну и наконец, ссылка на коммит, в котором я все это исправил."
Ещё у Саши есть заметки про его шахматный движок: t.me/sofcheck.
От @gepardius.
"Расскажу про include-what-you-use. Этот инструмент позволяет делать следующее:
- находить неиспользуемые
include'ы- находить
include'ы, которые стоит добавить. Например, мы в файле b.h пишем #include "a.h". А в некотором cpp-файле делаем #include "b.h" и используем как функции из b.h, так и функции из a.h. Тогда include-what-you-use предложит заинклудить a.h
- предлагать добавить forward declaration'ы вместо того, чтобы инклудить заголовки. Таким образом можно уменьшить время компиляцииЗвучит довольно полезно, поэтому я поставил его из репозиториев Debian и решил запустить:
$ cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
$ make -j
$ iwyu_tool -p . --
include-what-you-use интегрирован с CMake, поэтому его можно сразу запускать при сборке:$ CC=clang CXX=clang++ cmake -DCMAKE_CXX_INCLUDE_WHAT_YOU_USE=iwyu ..
$ make -j
Теперь коротко о том, какие результаты я получил. Было много действительно корректных срабатываний, но были и случаи, когда он вел себя неправильно.Во-первых, он хотел выкинуть
config.h. В этом файле содержатся всякие макросы, которые затем с #ifdef'ами используются в коде.Во-вторых, иногда он предлагал использовать какие-то странные include'ы вроде
#include <ext/alloc_traits.h>.
В-третьих, он предлагал очень странные вещи, когда я подключал gtest/gtest.h в Google-тестах: ссылка.В-четвертых, он много ругался на код Dodecahedron'а. Этот код я не хочу исправлять, в как отключить проверку для некоторых файлов, я не нашел.
В общем, ложных срабатываний в результатах получилось довольно много, поэтому я не стал добавлять include-what-you-use в CI. Просто буду его запускать время от времени и смотреть.
Ну и наконец, ссылка на коммит, в котором я все это исправил."
Ещё у Саши есть заметки про его шахматный движок: t.me/sofcheck.
packages.debian.org
Debian -- Details of package iwyu in bullseye
Analyze #includes in C and C++ source files
#cpp #stackoverflow
https://stackoverflow.com/questions/13127455/what-does-the-standard-library-guarantee-about-self-move-assignment
https://stackoverflow.com/questions/13127455/what-does-the-standard-library-guarantee-about-self-move-assignment
Stack Overflow
What does the standard library guarantee about self move assignment?
What does the C++11 standard say about self move assignment in relation to the standard library? To be more concrete, what, if anything, is guaranteed about what selfAssign does?
template<class...
template<class...
На @sofcheck новые посты про clang-tidy. Можете заглянуть 🙂
https://t.me/sofcheck/23
https://t.me/sofcheck/24
https://t.me/sofcheck/23
https://t.me/sofcheck/24
Telegram
SoFCheck
Пока я не испытывал никаких новых эвристик, расскажу про clang-tidy и про то, как он используется в SoFCheck'е
Что такое clang-tidy? Это статический анализатор, входящий в состав компилятора Clang. Он может отлавливать проблемные места в коде. Еще он может…
Что такое clang-tidy? Это статический анализатор, входящий в состав компилятора Clang. Он может отлавливать проблемные места в коде. Еще он может…
#cpp
Если кто-то вдруг ещё не знал, существуют рекомендации от создателей языка.
Недавно встретил поинт, что читать их полностью просто так оч тяжко из-за огромнейших размеров, потому предлагается следующий путь: откройте сайт у себя в закладках; в следующий раз, когда у вас возникнет вопрос, как лучше сделать, попробуйте поискать по документу; после нескольких таких случаев может вы наберётесь сил и осилите прочесть всё : )
https://isocpp.github.io/CppCoreGuidelines/
Если кто-то вдруг ещё не знал, существуют рекомендации от создателей языка.
Недавно встретил поинт, что читать их полностью просто так оч тяжко из-за огромнейших размеров, потому предлагается следующий путь: откройте сайт у себя в закладках; в следующий раз, когда у вас возникнет вопрос, как лучше сделать, попробуйте поискать по документу; после нескольких таких случаев может вы наберётесь сил и осилите прочесть всё : )
https://isocpp.github.io/CppCoreGuidelines/
isocpp.github.io
C++ Core Guidelines
The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++