https://eax.me/c-static-analysis/
При написании кода на C и C++ люди допускают ошибки. Многие из этих ошибок находятся благодаря -Wall, ассертам, тестам, дотошному code review, предупреждениям со стороны IDE, сборкой проекта разными компиляторами под разные ОС, работающие на разном железе, и так далее. Но даже при использовании всех этих мер ошибки часто остаются незамеченными. Немного улучшить положение дел позволяет статический анализ кода. В этой заметке мы познакомимся с некоторыми инструментами для произведения этого самого статического анализа.
#skill
При написании кода на C и C++ люди допускают ошибки. Многие из этих ошибок находятся благодаря -Wall, ассертам, тестам, дотошному code review, предупреждениям со стороны IDE, сборкой проекта разными компиляторами под разные ОС, работающие на разном железе, и так далее. Но даже при использовании всех этих мер ошибки часто остаются незамеченными. Немного улучшить положение дел позволяет статический анализ кода. В этой заметке мы познакомимся с некоторыми инструментами для произведения этого самого статического анализа.
#skill
eax.me
Краткий обзор статических анализаторов кода на C/C++ | Записки программиста
При написании кода на C и C++ люди допускают ошибки. Многие из этих ошибок находятся благодаря [cci]-Wall[/cci], ассертам, тестам, дотошному code review, предуп
https://pvs-studio.com/ru/blog/posts/cpp/0549/
Многие программисты не понаслышке знают о том, что программа на языке C и C++ собирается очень долго. Кто-то решает эту проблему, сражаясь на мечах во время сборки, кто-то - походом на кухню "выпить кофе". Это статья для тех, кому это надоело, и он решил, что пора что-то предпринять. В этой статье разобраны различные способы ускорения сборки проекта, а также лечение болезни "поправил один заголовочный файл - пересобралась половина проекта".
#skill
Многие программисты не понаслышке знают о том, что программа на языке C и C++ собирается очень долго. Кто-то решает эту проблему, сражаясь на мечах во время сборки, кто-то - походом на кухню "выпить кофе". Это статья для тех, кому это надоело, и он решил, что пора что-то предпринять. В этой статье разобраны различные способы ускорения сборки проекта, а также лечение болезни "поправил один заголовочный файл - пересобралась половина проекта".
#skill
PVS-Studio
Ускорение сборки C и C++ проектов
Многие программисты не понаслышке знают о том, что программа на языке C и C++ собирается очень долго. Кто-то решает эту проблему, сражаясь на мечах во время сборки, кто-то - походом на кухн…
https://habr.com/ru/post/263751/
У std::shared_ptr есть небольшой секрет: очень полезный конструктор, о котором большинство программистов даже не слышали. Он был добавлен только в стандарте С++11, и его не было даже в TR1 версии shared_ptr. Однако он поддерживается gcc с версии 4.3, и компилятором MSVC еще с времен Visual Studio 2010. В Boost он появился примерно с 1.35.0.
#skill
У std::shared_ptr есть небольшой секрет: очень полезный конструктор, о котором большинство программистов даже не слышали. Он был добавлен только в стандарте С++11, и его не было даже в TR1 версии shared_ptr. Однако он поддерживается gcc с версии 4.3, и компилятором MSVC еще с времен Visual Studio 2010. В Boost он появился примерно с 1.35.0.
#skill
Хабр
Секретный конструктор std::shared_ptr
This constructor is so secret, not even STL maintainers know about it...Stephan T. Lavavej Этот конструктор настолько секретный, что даже сопровождающие STL не з...
https://proglib.io/p/umnye-ukazateli-v-c-2021-08-26
В этой статье мы поговорим об умных указателях в C++, зачем они нужны, чем различаются указатели owning и non-owning и почему нельзя всегда использовать new/delete для создания и удаления объектов.
#info
В этой статье мы поговорим об умных указателях в C++, зачем они нужны, чем различаются указатели owning и non-owning и почему нельзя всегда использовать new/delete для создания и удаления объектов.
#info
Библиотека программиста
🛠 Умные указатели в C++
В этой статье мы поговорим об умных указателях в C++, зачем они нужны, чем различаются указатели owning и non-owning и почему нельзя всегда использовать new/delete для создания и удаления объектов.
https://medium.com/nuances-of-programming/идиома-crtp-и-написание-общих-функций-в-c-c04523080f84
Термин CRTP (curiously recurring template pattern) появился в 1995 году в одноименной статье, написанной Джеймсом О. Коплином. Он предполагает специализацию базовых классов с использованием производных классов в качестве аргументов шаблона.
#info
Термин CRTP (curiously recurring template pattern) появился в 1995 году в одноименной статье, написанной Джеймсом О. Коплином. Он предполагает специализацию базовых классов с использованием производных классов в качестве аргументов шаблона.
#info
Medium
Идиома CRTP и написание общих функций в C++
Разбираемся в концепции CRTP (Curiously recurring template patterns — рекурсивный шаблон). Она поможет описывать в C++ общую…
Forwarded from Хакер_BE1
https://medium.com/nuances-of-programming/компилятор-vs-интерпретатор-ключевые-отличия-ef14a2aa0ee6
Интерпретаторы и компиляторы отвечают за преобразование языка программирования или сценариев (язык высокого уровня) в машинный код. Но если обе программы делают одно и то же, чем они различаются? Давайте разберемся.
#info
Интерпретаторы и компиляторы отвечают за преобразование языка программирования или сценариев (язык высокого уровня) в машинный код. Но если обе программы делают одно и то же, чем они различаются? Давайте разберемся.
#info
Medium
Компилятор VS интерпретатор: ключевые отличия
Интерпретаторы и компиляторы отвечают за преобразование языка программирования или сценариев (язык высокого уровня) в машинный код. Но если…
https://oracle-patches.com/coding/новые-возможности-с-17-и-библиотеки-stl
Функциональность языка C++ значительно расширилась с выходом C++11, C++14 и недавней версии C++17. На текущий момент он совсем не похож на себя образца десятилетней давности. Стандарт С++ упорядочивает не только язык, но и STL.
#info
Функциональность языка C++ значительно расширилась с выходом C++11, C++14 и недавней версии C++17. На текущий момент он совсем не похож на себя образца десятилетней давности. Стандарт С++ упорядочивает не только язык, но и STL.
#info
Портал IT-специалистов: программирование, администрирование, базы данных
Новые возможности С++17 и библиотеки STL
Функциональность языка C++ значительно расширилась с выходом C++11, C++14 и недавней версии C++17. На текущий момент он совсем не похож на себя...
https://pvs-studio.com/ru/blog/terms/6516/#:~:text=RVO%20(Return%20Value%20Optimization)%20–,сконструирован%20на%20месте%20вызова%20функции
RVO (Return Value Optimization) – оптимизация компилятора, позволяющая в некоторых случаях не создавать локальный объект, который будет использован как возвращаемое значение.
#info
RVO (Return Value Optimization) – оптимизация компилятора, позволяющая в некоторых случаях не создавать локальный объект, который будет использован как возвращаемое значение.
#info
PVS-Studio
RVO и NRVO
RVO (Return Value Optimization) – оптимизация компилятора, позволяющая в некоторых случаях не создавать локальный объект, который будет использован как возвращаемое значение.
https://radioprog.ru/post/1420
Говоря о паттернах, одна аббревиатура кажется наиболее популярной – принципы SOLID. Да, на самом деле SOLID – это аббревиатура, которая означает:
🔺Single responsibility principle (принцип единственной ответственности);
🔺Open-closed principle (принцип открытости/закрытости);
🔺Liskov substitution principle (принцип подстановки Лисков);
🔺Interface segregation principle (принцип разделения интерфейса);
🔺Dependency inversion principle (принцип инверсии зависимостей).
#info
Говоря о паттернах, одна аббревиатура кажется наиболее популярной – принципы SOLID. Да, на самом деле SOLID – это аббревиатура, которая означает:
🔺Single responsibility principle (принцип единственной ответственности);
🔺Open-closed principle (принцип открытости/закрытости);
🔺Liskov substitution principle (принцип подстановки Лисков);
🔺Interface segregation principle (принцип разделения интерфейса);
🔺Dependency inversion principle (принцип инверсии зависимостей).
#info
RadioProg
Принципы SOLID в современном C++
О принципах SOLID на простых и понятных примерах.
https://skillbox.ru/media/code/printsip_kiss_v_programmirovanii/
Программисты не любят сложный код и придумывают правила, чтобы сделать его проще. Разбираемся, что это за правила и как их соблюдать.
#skill
Программисты не любят сложный код и придумывают правила, чтобы сделать его проще. Разбираемся, что это за правила и как их соблюдать.
#skill
Skillbox
Принцип KISS в программировании
Программисты не любят сложный код и придумывают правила, чтобы сделать его проще. Разбираемся, что это за правила и как их соблюдать.
Forwarded from С++_Hub
Что выведет программа?
Anonymous Quiz
3%
201
26%
Порядок не определен, implementation defined
25%
012
0%
021
26%
Неопределенное поведение
19%
210
https://unetway.com/tutorial/c-polimorfizm
Слово полиморфизм означает наличие многих форм. Как правило, полиморфизм возникает, когда существует иерархия классов, и они связаны наследованием.
#info
Слово полиморфизм означает наличие многих форм. Как правило, полиморфизм возникает, когда существует иерархия классов, и они связаны наследованием.
#info
Unetway
C ++ - Полиморфизм
Слово полиморфизм означает наличие многих форм. Как правило, полиморфизм возникает, когда существует иерархия классов, и они связаны наследованием.
https://evileg.com/ru/post/541/
Развивая идею кэширования результата вычислений тяжелых функций , предлагаю написать небольшой класс-шаблон, который будет принимать в качестве аргумента функцию, а именно лямбда-функция, как наиболее универсальный инструмент, в рамках которого будет выполняться тяжелая функция.
#skill
Развивая идею кэширования результата вычислений тяжелых функций , предлагаю написать небольшой класс-шаблон, который будет принимать в качестве аргумента функцию, а именно лямбда-функция, как наиболее универсальный инструмент, в рамках которого будет выполняться тяжелая функция.
#skill
EVILEG
C++17 - Ленивый шаблонный функтор с кэшированием результата вычислений тяжёлой функции
C++17 - Ленивый шаблонный функтор с кэшированием результата вычислений тяжёлой функции.
Развивая идею
кэширования результата вычислений тяжелых функций
, предлагаю написать небольшой класс-шаблон, который будет принимать в качестве аргумента…
Развивая идею
кэширования результата вычислений тяжелых функций
, предлагаю написать небольшой класс-шаблон, который будет принимать в качестве аргумента…
Skott_Meyers_Effektivnyiy_i_sovremennyiy_C++.pdf
12.9 MB
📖 Мейерс Скотт. Эффективный и современный С++: 42 рекомендации по использованию C++11 и C++14.
Вас интересует С++? Современный С++ (т.е. C++11/C++14) — это гораздо больше чем простое внесение косметических изменений в старый стандарт. Учитывая новые возможности языка, это скорее его переосмысление. Вам нужна помощь в его освоении? Тогда перед вами именно та книга которая вам нужна. Что касается С++, то Скотт Мейерс был и остается синонимом точности, качества и удовольствия от чтения.
C++_BE1
#itbook
Вас интересует С++? Современный С++ (т.е. C++11/C++14) — это гораздо больше чем простое внесение косметических изменений в старый стандарт. Учитывая новые возможности языка, это скорее его переосмысление. Вам нужна помощь в его освоении? Тогда перед вами именно та книга которая вам нужна. Что касается С++, то Скотт Мейерс был и остается синонимом точности, качества и удовольствия от чтения.
C++_BE1
#itbook
Укажите проблему написанного кода, которая приводит к невозможности исполнять данный код из предложенных вариантов
Anonymous Quiz
22%
Stop нигде не зовётся, PeriodicClosure никогда не завершит свою работу
29%
При создании Derived, Base не знает какую из DoSomething исполнять, что приведёт к datarace vptr
21%
Код не скомпилируется: this capture невозможна в виртуальных классах
14%
Отсутствует виртуальный деструктор, что приведёт к ошибке компиляции
9%
DoSomething в Derived помечена как virtual, код не скомпилируется, virual обязано быть в Base
5%
Код не скомпилируется, так как наследование в виртуальных классах обязано быть private
https://evileg.com/ru/post/414/
Работа над крупным проектом позволяет в некоторых случаях проверить некоторые теории, касающиеся языка программирования.
#info
Работа над крупным проектом позволяет в некоторых случаях проверить некоторые теории, касающиеся языка программирования.
#info
EVILEG
C++ - Ускоряет ли сборку #pragma once?
C++ - Ускоряет ли сборку #pragma once?.
Работа над крупным проектом позволяет в некоторых случаях проверить некоторые теории, касающиеся языка программирования.
Всегда было интересно, действительно ли ускоряется сборка при исполь
Работа над крупным проектом позволяет в некоторых случаях проверить некоторые теории, касающиеся языка программирования.
Всегда было интересно, действительно ли ускоряется сборка при исполь