Что такое Name Mangling в C++?
Когда мы пишем программы на C++, мы постоянно создаем новые функции и методы с (надеюсь) описательными именами. Имена важны для нас, людей, для понимания кода. Но в скомпилированном машинном коде наших готовых исполняемых файлов они не играют никакой роли. Процессор даже не знает о них.
Читать статью
🟡 Пройдите тест по С++
— Ответьте на 20 вопросов и проверьте, насколько хорошо вы знаете язык. Сможете сдать — пройдёте на продвинутыйонлайн-курс "C++ Developer. Professional" со скидкой!
🚀На этом курсе вы:
- Научитесь прикладному применению стандартов C++11 / C++14 / C++17.
- Освоите асинхронное и многопоточное программирование.
- Получите глубокое представление о шаблонной магии и паттернах проектирования.
Наглядным результатом вашей работы станет выпускной проект.
- Возможна оплата курса в рассрочку.
👉🏻 ПРОЙТИ ТЕСТ ОНЛАЙН-КУРСА ПО C++
Нативная интеграция. Информация о продукте www.otus.ru
Можно ли в C++ умножать или делить целое значение на степени двойки, не используя операций "*" или "/"?
Это можно делать в любом языке, где есть побитовый сдвиг. Умножению значения x на 2, например, соответствует операция x > 2.
#вопросы_с_собеседований
Оператор присваивания ( = ), строго говоря, является бинарным оператором. Его объявление идентично объявлению любого другого бинарного оператора со следующими исключениями:
☑️ Он должен быть нестатической функцией-членом.
☑️ Он не наследуется производными классами.
☑️ Компилятор может создать функцию operator = по умолчанию для типов классов, если она не существует.
В примере показано, как объявить оператор присваивания.
#код
Алгоритм is_sorted_until
Используется для определения первого несортированного элемента в диапазоне [first, last). Он возвращает итератор к первому несортированному элементу в диапазоне, поэтому все элементы между первым и возвращенным итератором сортируются.
Его также можно использовать для подсчета общего количества отсортированных элементов в диапазоне. Он определяется внутри файла заголовка. Если весь диапазон отсортирован, он вернет итератор, указывающий на последний.
#код
👨💻 Yandex Cloud, Yandex 360 и Yandex Infrastructure — это точки притяжения талантливых инженеров
Приходите на прямой эфир, чтобы узнать про ключевые вызовы команды.
На встрече расскажем, как мы развиваем инфраструктуру Яндекса, строим публичную облачную платформу и виртуальный офис для клиентов.
📍20 июня 2023 г., в 16:00
Эфир будет полезен бэкенд-разработчикам и SRE, которым интересно узнать, какие задачи мы решаем и кого мы ищем.
Регистрируйтесь по ссылке!
Возможности Rust, которые нужны в C++ — Дэвид Санкель — CppNow
По многим оценкам, Rust — один из самых быстрорастущих языков программирования. Хотя этому росту способствует множество факторов, в этом докладе автор сосредоточился на тех аспектах Rust, которые делают его особенно привлекательным в качестве языка системного программирования. Это касается инструментов, сообщества, стратегии и, конечно же, функций.
Смотреть доклад
Работу найти проще, когда вы уверены в своих знаниях и коде. Изучайте актуальные стеки и технологии на курсах для разработчиков от Яндекс Практикума, получайте дополнительные навыки и зарабатывайте больше 🫶🏼
На курсах можно:
– освоить Go и С++ для бэкенда на продвинутом уровне;
– прокачаться от джуна до мидла во фронтенде и бэкенде;
– погрузиться в React;
– научиться тестировать веб-приложения на Java и Python;
– разобраться в алгоритмах и структурах данных для работы и собеседований;
– освоить методологию DevOps для эксплуатации и разработки.
Выбирайте IT-направление, оценивайте уровень своих знаний с помощью бесплатного теста, проходите онлайн курс и становитесь самым подходящим кандидатом на желанную должность.
👨💻 Yandex Cloud, Yandex 360 и Yandex Infrastructure — это точки притяжения талантливых инженеров
Приходите на прямой эфир, чтобы узнать про ключевые вызовы команды.
На встрече расскажем, как мы развиваем инфраструктуру Яндекса, строим публичную облачную платформу и виртуальный офис для клиентов.
📍20 июня 2023 г., в 16:00
Эфир будет полезен бэкенд-разработчикам и SRE, которым интересно узнать, какие задачи мы решаем и кого мы ищем.
Регистрируйтесь по ссылке!
Функция isprint()
В C++ isprint() — это предопределенная функция, используемая для обработки строк и символов. cstring — это заголовочный файл, необходимый для строковых функций, а cctype — заголовочный файл, необходимый для символьных функций.
Эта функция используется для проверки того, содержит ли аргумент какие-либо печатные символы.
Подробнее можно почитать здесь.
#код
#вопросы_с_собеседований
Как запретить наследовать класс?
Чтобы запретить наследование класса в C++, вы можете объявить класс как final.
Ключевое слово final указывает компилятору, что класс не может быть использован в качестве базового класса для других классов. Если попытаться наследовать от класса, объявленного как final, компилятор выдаст ошибку.
class Base final {// ...};class Derived : public Base {// ...};// Ошибка компиляции: класс Base объявлен как final
🫵 Пройди тест по C++ и проверь свои знания.
Ответишь — пройдешь на продвинутый курс "C++ Developer. Professional" от OTUS по специальной цене + получишь запись мастер-класса от преподавателя курса.
👉 ПРОЙТИ ТЕСТ:https://otus.pw/er0g/Нативная интеграция. Информация о продукте www.otus.ru
Просмотр все файлов в папке с помощью C++
Для того, чтобы просмотреть все файлы в папке с помощью C++, можно использовать функцию std::filesystem::directory_iterator(). Данная функция позволяет перебирать все файлы в указанной директории.
В данном примере мы получаем текущую директорию с помощью функции fs::current_path(), а затем проходим по всем файлам в этой директории с помощью цикла for. Внутри цикла мы выводим путь к каждому файлу с помощью метода entry.path().
🤖🎮 GPT-4 играет в Minecraft и самообучается: сингулярность, в результате которой ИИ сам сделает себя умнее людей
В этой статье речь пойдет об эксперименте Voyager, в котором группа исследователей дала GPT-4 поиграть в Minecraft. Нейросеть сама учила себя играть, обучалась разным действиям вроде «срубить дерево» или «убить паука» и добавляла скиллы в свою библиотеку. Проще говоря, GPT-4 теперь пишет код, проверяет его и совершенствует. Именно с такого начинается так называемая сингулярность, в результате которой ИИ сам сделает себя умнее людей. Сингулярность Майнкрафта.
🔗 Основной сайт
🔗 Зеркало
Узнаем версию C++
Можно использовать макрос __cplusplus для определения версии C++. Например, если препроцессор увидит значение __cplusplus, равное 199711L, это означает, что используется C++98; значение 201103L указывает на C++11 и так далее.
#код
Декодирование процесса компиляции C/C++: от исходного кода к бинарному
Вы когда-нибудь задумывались, что происходит за кулисами, когда вы пишете программу на C? Как ваш код превращается из строк текста в полнофункциональный двоичный исполняемый файл? Если вам интересно узнать о тонкостях процесса компиляции программы на C, эта статья для вас.
Читать статью