🧨 Чем отличаются ссылки от указателей в С++
❗Указатели
• Указатель — это переменная, которая содержит адрес ячейки памяти
• Указатели могут быть нулевыми (nullptr), что означает, что они не указывают ни на какую конкретную область памяти
• Указатели могут быть изменены для указания на другую область памяти
• Указатели могут указывать на массивы элементов
• Указатели могут использоваться для динамического выделения памяти с помощью оператора new и освобождения памяти с помощью оператора delete
❗Ссылки
• Ссылка — это альтернативное имя для существующей переменной
• Ссылка обязательно должна быть инициализирована при объявлении и не может быть изменена, чтобы указывать на другой объект
• Ссылки не могут быть нулевыми, они всегда указывают на существующий объект
• Ссылки не могут указывать на массивы элементов
• Ссылки обычно используются в качестве аргументов функций для передачи данных по ссылке, что позволяет изменять исходные значения переменных
❗Указатели
• Указатель — это переменная, которая содержит адрес ячейки памяти
• Указатели могут быть нулевыми (nullptr), что означает, что они не указывают ни на какую конкретную область памяти
• Указатели могут быть изменены для указания на другую область памяти
• Указатели могут указывать на массивы элементов
• Указатели могут использоваться для динамического выделения памяти с помощью оператора new и освобождения памяти с помощью оператора delete
❗Ссылки
• Ссылка — это альтернативное имя для существующей переменной
• Ссылка обязательно должна быть инициализирована при объявлении и не может быть изменена, чтобы указывать на другой объект
• Ссылки не могут быть нулевыми, они всегда указывают на существующий объект
• Ссылки не могут указывать на массивы элементов
• Ссылки обычно используются в качестве аргументов функций для передачи данных по ссылке, что позволяет изменять исходные значения переменных
🧨 C++ Insights
C++ Insights — инструмент на базе clang, который выполняет преобразование исходного кода в другой исходный код😜. Его цель состоит в том, чтобы сделать видимым то, что обычно происходит за «кулисами» — показывает что компилятор выполняет перед компиляцией. Например разворачивает шаблоны, подставляет константы, генерирует код из описания лямбда-функций и многое другое
Очень полезная вещь, если хочешь лучше понимать как работать с C++ и какие действия выполняет компилятор перед непосредственно преобразованием кода в бинарный файл
👉C++ Insights
C++ Insights — инструмент на базе clang, который выполняет преобразование исходного кода в другой исходный код😜. Его цель состоит в том, чтобы сделать видимым то, что обычно происходит за «кулисами» — показывает что компилятор выполняет перед компиляцией. Например разворачивает шаблоны, подставляет константы, генерирует код из описания лямбда-функций и многое другое
Очень полезная вещь, если хочешь лучше понимать как работать с C++ и какие действия выполняет компилятор перед непосредственно преобразованием кода в бинарный файл
👉C++ Insights
🔮 std::bitset
Шаблонный класс std::bitset предназначен для управления наборами битов, обеспечивая удобные методы для их установки, сброса и получения. Основная польза от него в том, что в нём можно компактно хранить булевы значения, не тратя на это целый байт, как при использовании обычного bool
Шаблонный класс std::bitset предназначен для управления наборами битов, обеспечивая удобные методы для их установки, сброса и получения. Основная польза от него в том, что в нём можно компактно хранить булевы значения, не тратя на это целый байт, как при использовании обычного bool
⚙️ Лекция «Идея по улучшению многопоточного кода»
На YouTube канале C++ User Group вышла новая лекция Александра Корнилова — Идея по улучшению многопоточного кода
Александр описывает подход к написанию многопоточного кода, который помогает избежать типовых ошибок, связанных с использованием базовых примитивов синхронизации. Демонстрация идеи проходит на живых примерах кода на современном C++
👉Ссылка (YouTube)
На YouTube канале C++ User Group вышла новая лекция Александра Корнилова — Идея по улучшению многопоточного кода
Александр описывает подход к написанию многопоточного кода, который помогает избежать типовых ошибок, связанных с использованием базовых примитивов синхронизации. Демонстрация идеи проходит на живых примерах кода на современном C++
👉Ссылка (YouTube)
🔍 Что такое std::filesystem?
std::filesystem — одной из самых полезных библиотек в C++, добавленной в стандартную библиотеку начиная с C++17. Это библиотека, предоставляющая мощные инструменты для работы с файловой системой. С ее помощью вы можно создавать, копировать, перемещать и удалять файлы и директории
Создание директории
- std::filesystem::create_directories(path)
Удаление директории
- std::filesystem::remove(path) — пустой директории
- std::filesystem::remove_all(path) — директории вместе с файлами
Копирование
- std::filesystem::copy(path_from, path_to)
👉Документация
std::filesystem — одной из самых полезных библиотек в C++, добавленной в стандартную библиотеку начиная с C++17. Это библиотека, предоставляющая мощные инструменты для работы с файловой системой. С ее помощью вы можно создавать, копировать, перемещать и удалять файлы и директории
Создание директории
- std::filesystem::create_directories(path)
Удаление директории
- std::filesystem::remove(path) — пустой директории
- std::filesystem::remove_all(path) — директории вместе с файлами
Копирование
- std::filesystem::copy(path_from, path_to)
👉Документация
💣 50 интересных веб сайтов по изучению C/C++
Список из 50-ти полезнейших сайтов, которые будут полезны каждому разработчику. Конечно в списке есть такие известные сайты как cplusplus.com и cppreference.com, куда же без них😊 Но также множество других полезных, но менее известных!
👉 Ссылка
Список из 50-ти полезнейших сайтов, которые будут полезны каждому разработчику. Конечно в списке есть такие известные сайты как cplusplus.com и cppreference.com, куда же без них😊 Но также множество других полезных, но менее известных!
👉 Ссылка
⚙️ Почему нужно использовать extern «C» в коде?
Ключевое слово extern «C» используется для указания компилятору C++ на использование соглашения о вызовах функций, аналогичного тому, что используется в языке C. Это необходимо, потому что ABI (Application Binary Interface) C++ отличается от ABI C
Ключевое слово extern «C» сообщает компилятору C++, что функции, объявленные внутри этого блока, должны использовать соглашение о вызове, аналогичное C. Это гарантирует, что компилятор C++ не будет применять к ним особенности C++ ABI, и они будут корректно вызываться из C++ кода
Ключевое слово extern «C» используется для указания компилятору C++ на использование соглашения о вызовах функций, аналогичного тому, что используется в языке C. Это необходимо, потому что ABI (Application Binary Interface) C++ отличается от ABI C
Ключевое слово extern «C» сообщает компилятору C++, что функции, объявленные внутри этого блока, должны использовать соглашение о вызове, аналогичное C. Это гарантирует, что компилятор C++ не будет применять к ним особенности C++ ABI, и они будут корректно вызываться из C++ кода
😸 Реализация print() на C++
Продолжая тему реализации своей функции print. Предложу к прочтению статью. В ней автор рассказывает о своём опыте написания Python-овской функции print на C++
👉 Ссылка
Продолжая тему реализации своей функции print. Предложу к прочтению статью. В ней автор рассказывает о своём опыте написания Python-овской функции print на C++
👉 Ссылка
⚙️ Зачем нужен std:string_view?
std::string_view — легковесный способ работы с неизменяемыми последовательностями символов, представленными строками, без копирования их данных
std::string_view — это просто пара значений, указатель на последовательность и размер
❗Так как std::string_view не является владельцем данных, то если строка исчезнет, то никто не информирует, что std::string_view перестал быть валидным
‼️ Основная идея — это дёшево хранить и передавать строки
std::string_view — легковесный способ работы с неизменяемыми последовательностями символов, представленными строками, без копирования их данных
std::string_view — это просто пара значений, указатель на последовательность и размер
❗Так как std::string_view не является владельцем данных, то если строка исчезнет, то никто не информирует, что std::string_view перестал быть валидным
‼️ Основная идея — это дёшево хранить и передавать строки
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
🔟 10 суровых истин, которые должен знать каждый джун
Вы думаете, что карьера в ИТ — это сплошные плюшки? Забудьте! Реальность жестока: низкие зарплаты на старте, бесконечные задачи и битва за релокацию. Откройте глаза на суровые реалии прямо сейчас!
👉 Читать статью
👉 Зеркало
Вы думаете, что карьера в ИТ — это сплошные плюшки? Забудьте! Реальность жестока: низкие зарплаты на старте, бесконечные задачи и битва за релокацию. Откройте глаза на суровые реалии прямо сейчас!
👉 Читать статью
👉 Зеркало
💡 Статья Разработка игры на C++/SFML
Вводная статья про начало использования SFML для разработки игр. В статье даются материалы, которые необходимы чтобы начать пользоваться этой библиотекой и запустить свой собственный пример своей собственной игры😆
👉Ссылка
Вводная статья про начало использования SFML для разработки игр. В статье даются материалы, которые необходимы чтобы начать пользоваться этой библиотекой и запустить свой собственный пример своей собственной игры😆
👉Ссылка
❗Операционная система xv6
Вышло продолжение перевода статей об учебной операционной система xv6
📚 Статьи
- Глава 5. Прерывания и драйверы устройств
- Глава 6. Блокировки
- Глава 7. Планирование процессов
Вышло продолжение перевода статей об учебной операционной система xv6
📚 Статьи
- Глава 5. Прерывания и драйверы устройств
- Глава 6. Блокировки
- Глава 7. Планирование процессов
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
💪 Что не так с MVP: как создать конкурентоспособный продукт
Традиционная концепция MVP нуждается в пересмотре — авторы предлагают альтернативный подход, основанный на тесном взаимодействии с целевой аудиторией и непрерывных итерациях для создания действительно ценного продукта.
👉 Читать статью
👉 Зеркало
Традиционная концепция MVP нуждается в пересмотре — авторы предлагают альтернативный подход, основанный на тесном взаимодействии с целевой аудиторией и непрерывных итерациях для создания действительно ценного продукта.
👉 Читать статью
👉 Зеркало
This media is not supported in your browser
VIEW IN TELEGRAM
💬 Open Source по-русски: путь к технологической независимости или обочина прогресса?
Для одних организаций open source является ключом к преодолению зависимости от иностранных вендоров и драйвером инноваций, для других — дырой в безопасности и обочиной технологического прогресса.
Мы хотим изучить текущее состояние и возможности открытого ПО в России. Пройдите опрос и помогите нам увидеть ситуацию глазами IT-профессионалов.
👉 Ссылка на опрос 👈
Прохождение займёт примерно 4 минуты
Для одних организаций open source является ключом к преодолению зависимости от иностранных вендоров и драйвером инноваций, для других — дырой в безопасности и обочиной технологического прогресса.
Мы хотим изучить текущее состояние и возможности открытого ПО в России. Пройдите опрос и помогите нам увидеть ситуацию глазами IT-профессионалов.
👉 Ссылка на опрос 👈
Прохождение займёт примерно 4 минуты