C++ Academy
16.5K subscribers
620 photos
127 videos
1 file
584 links
По всем вопросам- @haarrp

@itchannels_telegram - 🔥 best it channels

РКН: clck.ru/3FmxJF
Download Telegram
ImHexHex-редактор для людей, которые ценят свое зрение при работе в 3 часа ночи

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

Также присутствует возможность патчинга и написания паттеров для подсветки на собственном языке, похожем на C++

Ссылка на проект

https://t.me/cpluspluc
👍2
Ryujinxэкспериментальный эмулятор Nintendo Switch, написанный на C#

Этот эмулятор нацелен на обеспечение отличной точности эмуляции и производительности. Имеет удобный интерфейс

Ссылка на проект

https://t.me/cpluspluc
🔥1
Ryujinxэкспериментальный эмулятор Nintendo Switch, написанный на C#

Этот эмулятор нацелен на обеспечение отличной точности эмуляции и производительности. Имеет удобный интерфейс

Ссылка на проект

https://t.me/cpluspluc
👍2
bake – система сборки, которая ставит своей целью облегчить жизнь разработчика на C/C++ путём упрощения процесса сборки, конфигурации проекта и всего, что с этим связано

Ссылка на проект

https://t.me/cpluspluc
👍1🔥1
🖥 Хитрости для GCC

1. Если вы используете GCC, вы можете написать #include <bits/stdc++.h> для импортирования всех стандартных библиотек.

2. GCC имеет встроенные функции для проведения определённых манипуляций с битами за постоянное время. Например, __builtin_popcount вычисляет общее количество установленных битов заданного целого числа (для long long используйте __builtin_popcountll).

#define count_ones __builtin_popcountl
// count_ones(9) равно 2

Есть множество других встроенных функций, прочитать про которые можно здесь.

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥1
🖥 Кодогенератор Waffle++ для C++

Кодогенератор это программа, которая на основе исходного кода или какого-нибудь файла настроек генерирует вспомогательный код, который потом компилируется вместе с исходным кодом. Это нужно, чтобы не писать boilerplate-код (копипаст) и получить новые возможности языка.

Я делаю расширяемый кодогенератор для C++, в котором можно реализовать много полезного. Примеры модулей: перевод значений enum в строку и обратно, перевод структуры в JSON и обратно, декларативный веб-сервер, система слотов и сигналов, свой динамический полиморфизм, генератор кода для тестов...

В этом обзоре будет showcase, сравнение с другими кодогенераторами, описание работы модулей, как сделать свой модуль, и как подключить кодогенератор в свои проекты.

➡️ Читать

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥31🍓1
🖥 Dragonfly – cервис/in-memory база данных, которая будет очень крутой заменой для Redis

По факту это многопоточная, быстрая замена редис

🖥 Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍31
Metacall – библиотека которая позволяет вызывать функции, методы, процедуры между разными языками

🖥 Github

#C #Cpp

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51🔥1
Выберите правильный вариант выделения динамической памяти под переменную X типа float:
Anonymous Quiz
56%
float *ptr = new float; X = *ptr;
19%
float & ptr = new float; X = & ptr;
25%
float * ptr = &X; X = new float;
👍6
​​​​Всё об исключениях в С++

Наверняка, изучая С++, вы сталкивались с исключениями. С помощью исключений можно передать сведения об ошибках в стек вызовов. Однако, несмотря на полученную информацию, не всегда легко определить, что вызвало исключение.

Чтобы лучше понять механику обработки ошибок с помощью операторов и особенности исключений в С++, собрали самое важное в этой статье:

https://tprg.ru/IHiS

#c
👍4
Бесплатные курсы по программированию на языке C++

Хотите изучить язык C++? На Stepik доступны бесплатные русскоязычные курсы с кучей практики, которые помогут освоить все тонкости C++.

Перед изучением C++ рекомендуется знать хотя бы один язык программирования, поскольку в курсах опущены основы программирования:

1. Программирование на языке C++
Вы узнаете о том, как компилируются и выполняются программы на C++, а также усвоите основной синтаксис языка, структуры и классы, ООП и шаблоны.

2. Программирование на языке C++ (продолжение)
Дополнение к предыдущему курсу, где рассмотрены продвинутые возможности C++, нововведения современных стандартов языка, стандартная библиотека шаблонов, обработка ошибок и программирование многопоточных приложений.

#cpp #курсы
11
llama.cpp – Порт нейронки «LLaMA» от Facebook, равной по мощности GPT-3 на чистом C/C++

Работает на Mac OS, GNU/Linux, Windows и Android (Termux)

🖥 Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥3
Media is too big
VIEW IN TELEGRAM
Глубокое погружение в технику диспетчеризации - Джонатан Мюллер - Meeting C++ 2022
Доклад на Eng💡

В основе интерпретатора лежит цикл, который итерирует инструкции и выполняет их по порядку. Это требует диспетчеризации: исходя из текущей инструкции, он должен выбирать различный код. Быстрый интерпретатор требует быстрого диспетчера инструкций, как и все остальное, что должно переключаться между фиксированным набором различных вариантов.

В этом докладе рассматриваются различные техники диспетчеризации, начиная с виртуальных функций, простых операторов переключения и заканчивая таблицами переходов. Мы рассмотрим инструменты анализа производительности, эталоны и много-много ассемблерного кода, чтобы узнать, как обмануть компилятор и заставить его генерировать тот ассемблерный код, который нам на самом деле нужен.

Даже если вам не нужно писать интерпретатор или другой диспетчер, вы узнаете много нового об оптимизации.

источник
6
👨🏻‍💻 Подборка полезных ссылок для изучения C++

💡 LearnCpp.com — это бесплатный веб-сайт, посвященный обучению вас программированию на C++. Независимо от того, был ли у вас какой-либо предыдущий опыт программирования или нет, учебные пособия на этом сайте помогут вам выполнить все шаги по написанию, компиляции и отладке ваших программ на C++, и все это с большим количеством примеров.

💡 ravesli.com — Здесь представлены более 240 бесплатных уроков, где с нуля рассматриваются основы и тонкости языка С++ и программирования в целом. Есть пошаговые создания игр на С++ с помощью библиотек MFC и SFML, и более 70 практических заданий для проверки ваших навыков программирования.

💡 metanit.com — данный сайт посвящен различным языкам и технологиям программирования, компьютерам, мобильным платформам и ИТ-технологиям. Здесь будут выкладываться различные руководства и учебные материалы, статьи и примеры.

💡 cppstudio.com/cat/274/ — Если вы новичок в C++, предлагаю Вам прочитать этот бесплатный учебник. Здесь собрано большое количество статей для начинающих программистов по С++. Условно все статьи разделены на группы, кратко характеризующие их содержание. После прочтения статьи, можно закрепить материал, написав несколько программ. Для проверки своих теоретических знаний можно пройти тестирование по С++. В таблице после теоретических статей идет подраздел практики, в котором вы можете пройти тестирование и написать программы.

💡 cplusplus.com/doc/tutorial/ — These tutorials explain the C++ language from its basics up to the newest features introduced by C++11. Chapters have a practical orientation, with example programs in all sections to start practicing what is being explained right away.

💡 devdocs.io/cpp/ — The interface of C++ standard library is defined by the following collection of headers.

💡 https://www.cpp.com.ru/ — C++ — чрезвычайно мощный язык, содержащий средства создания эффективных программ практически любого назначения, от низкоуровневых утилит и драйверов до сложных программных комплексов самого различного назначения. На данном сайте выложено несколько книг и статей по языкам С и С++, как для начинающих, так и для профессионалов.

💡 https://en.cppreference.com/w/cpp — ещё одна хорошая документация на английском. Постоянно обновляется.

💡 https://learnc.info/ — хороший сайт с лекциями по языку C. В качестве базового языка вам предстоит изучать C. Почему именно C, а не Pascal, Python, Ruby или PHP? Этот язык заставляет вас думать обо всём. Когда программируешь на си, начинаешь понимать, что компьютер - просто железяка. Необходимо самостоятельно выделять память под объекты, затем очищать эту память, заботиться о переполнении массивов, переполнении переменных, изменении знака переменных, приведении типов, правильном обращении к памяти и т.д.
👍82🔥1
Алгоритм includes

Используется для распознавания, существуют ли все числа тз одного контейнера в других контейнерах. Это помогает проверить, является ли набор подмножеством другого набора или нет, учитывая, что набор упорядочен. Ожидается, что элементы будут отсортированы по порядку.
🔥7👍41