Примеры исходного кода C++
Эта страница содержит примеры исходного кода функций стандартной библиотеки программирования C++.
https://www.sourcecodeexamples.net/p/cpp-source-code-examples.html
#cpp #programming
👉 @cpp_lib
Эта страница содержит примеры исходного кода функций стандартной библиотеки программирования C++.
https://www.sourcecodeexamples.net/p/cpp-source-code-examples.html
#cpp #programming
👉 @cpp_lib
👍9❤3🤔2🗿1
Go-like каналы на C++
Каналы (channels, pipes) – это удобная абстракция для построения приложений, работающих в многопоточной среде. Они используются для передачи сообщений между потоками и, одновременно с этим, как средство синхронизации потоков. Я буду ссылаться на "Go-style channels", т.к. на мой взгляд, важная особенность каналов в языке GO – это возможность их мультиплексировать.
Реализации каналов на языке C++, конечно же, есть, например, в библиотеке boost::fibers, можно найти реализацию двух видов каналов. В документации boost::fibers можно найти описания способов мультиплексирования, правда не самих каналов, но и к ним можно применить подобную технику.
https://habr.com/ru/articles/805561/
#cpp #programming
👉 @cpp_lib
Каналы (channels, pipes) – это удобная абстракция для построения приложений, работающих в многопоточной среде. Они используются для передачи сообщений между потоками и, одновременно с этим, как средство синхронизации потоков. Я буду ссылаться на "Go-style channels", т.к. на мой взгляд, важная особенность каналов в языке GO – это возможность их мультиплексировать.
Реализации каналов на языке C++, конечно же, есть, например, в библиотеке boost::fibers, можно найти реализацию двух видов каналов. В документации boost::fibers можно найти описания способов мультиплексирования, правда не самих каналов, но и к ним можно применить подобную технику.
https://habr.com/ru/articles/805561/
#cpp #programming
👉 @cpp_lib
👍8
Автор: Marius Iulian Mihailescu (2023)
Сформировать прочные навыки написания криптографических алгоритмов и схем/модулей безопасности с использованием языка C++23 и его новых возможностей. Эта книга научит вас правильным методам написания продвинутых криптографических алгоритмов, таких как алгоритмы криптографии на основе эллиптических кривых, криптографии на основе решетки, шифрования с поиском и гомоморфного шифрования. Вы также рассмотрите внутренние криптографические механизмы и узнаете общие способы реализации и правильного использования алгоритмов на практике.
#cpp #programming
👉 @cpp_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Что такое Uniform initialization? Aggregate initialization?
Uniform initialization, введенная в C++11, позволяет использовать единый синтаксис для инициализации переменных и объектов, начиная от примитивных типов до агрегатов¹. Другими словами, она вводит инициализацию скобками, которая использует фигурные скобки {} для заключения значений инициализатора. Синтаксис выглядит следующим образом:
Aggregate initialization - это форма инициализации списком для массивов или типов класса (часто структур или объединений), которые имеют: нет приватных или защищенных членов, нет пользовательских конструкторов, кроме явно заданных или удаленных конструкторов . Это позволяет напрямую инициализировать элементы агрегатов. Для этого мы предоставляем список инициализаторов в качестве инициализатора, который представляет собой список значений, разделенных запятыми.
Например, если у вас есть структура с несколькими членами:
Когда мы определяем объект с типом структуры, нам нужен способ инициализации нескольких членов во время инициализации:
Агрегаты используют форму инициализации, называемую агрегатной инициализацией, которая позволяет нам напрямую инициализировать элементы агрегатов. Для этого мы предоставляем список инициализаторов в качестве инициализатора, который представляет собой список значений, разделенных запятыми. Так же как обычные переменные могут быть скопированы, напрямую инициализированы или списком инициализированы, есть 3 формы агрегатной инициализации.
#cpp #programming
👉 @cpp_lib
Uniform initialization, введенная в C++11, позволяет использовать единый синтаксис для инициализации переменных и объектов, начиная от примитивных типов до агрегатов¹. Другими словами, она вводит инициализацию скобками, которая использует фигурные скобки {} для заключения значений инициализатора. Синтаксис выглядит следующим образом:
type var_name {arg1, arg2, ....arg n}
.Aggregate initialization - это форма инициализации списком для массивов или типов класса (часто структур или объединений), которые имеют: нет приватных или защищенных членов, нет пользовательских конструкторов, кроме явно заданных или удаленных конструкторов . Это позволяет напрямую инициализировать элементы агрегатов. Для этого мы предоставляем список инициализаторов в качестве инициализатора, который представляет собой список значений, разделенных запятыми.
Например, если у вас есть структура с несколькими членами:
struct Employee {
int id {};
int age {};
double wage {};
};
Когда мы определяем объект с типом структуры, нам нужен способ инициализации нескольких членов во время инициализации:
Employee joe; // как мы инициализируем joe.id, joe.age и joe.wage?
Агрегаты используют форму инициализации, называемую агрегатной инициализацией, которая позволяет нам напрямую инициализировать элементы агрегатов. Для этого мы предоставляем список инициализаторов в качестве инициализатора, который представляет собой список значений, разделенных запятыми. Так же как обычные переменные могут быть скопированы, напрямую инициализированы или списком инициализированы, есть 3 формы агрегатной инициализации.
#cpp #programming
👉 @cpp_lib
👍6
Краткое сравнение популярных функций измерения времени
Решил обновить свою старую крохотную библиотечку для тайминга кода. Измерение коротких временнЫх интервалов в ней выполнялось с помощью: инструкции RDTSC при компиляции MSC для x86 и gettimeofday при сборке GCC под Linux. IMHO, на сегодняшний день это не самые правильные методы, и захотелось объективно выбрать что-то более точное и лёгкое. Для этого были измерены несколько параметров наиболее популярных функций измерения времени. Результатами этих измерений и делюсь с вами (вдруг кому тоже интересно).
https://habr.com/ru/articles/818965/
#cpp #programming
👉 @cpp_lib
Решил обновить свою старую крохотную библиотечку для тайминга кода. Измерение коротких временнЫх интервалов в ней выполнялось с помощью: инструкции RDTSC при компиляции MSC для x86 и gettimeofday при сборке GCC под Linux. IMHO, на сегодняшний день это не самые правильные методы, и захотелось объективно выбрать что-то более точное и лёгкое. Для этого были измерены несколько параметров наиболее популярных функций измерения времени. Результатами этих измерений и делюсь с вами (вдруг кому тоже интересно).
https://habr.com/ru/articles/818965/
#cpp #programming
👉 @cpp_lib
👍5
Шпаргалка фокусируется на языке, а не стандартной библиотеке, и учитывает особенности C++11/C++14
#cpp #programming
👉 @cpp_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤5🔥2