Forwarded from Библиотека собеса по C++ | вопросы с собеседований
🔍 Что такое empty base optimization?
В C++ любой класс, даже пустой, будет размером не меньше одного байта. Это необходимо, чтобы не было проблем с арифметикой указателей. Однако наследование от пустого класса будет приводить увеличению размера наследника. Но, в C++ предусмотрена empty base optimization, которая позволяет компилятору оптимизировать занимаемую память, так что объект, наследующий пустой базовый класс, не будет занимать дополнительной памяти за счет этого пустого базового класса. Таким образом, размер объекта будет таким же, как если бы он не наследовал пустой класс
В C++ любой класс, даже пустой, будет размером не меньше одного байта. Это необходимо, чтобы не было проблем с арифметикой указателей. Однако наследование от пустого класса будет приводить увеличению размера наследника. Но, в C++ предусмотрена empty base optimization, которая позволяет компилятору оптимизировать занимаемую память, так что объект, наследующий пустой базовый класс, не будет занимать дополнительной памяти за счет этого пустого базового класса. Таким образом, размер объекта будет таким же, как если бы он не наследовал пустой класс
Forwarded from Библиотека собеса по C++ | вопросы с собеседований
🔮 Сетевое программирование в C++
Для C++ пока, к сожалению, не написали стандартную библиотеку для работы с сетью. Но, зато есть множество хороших библиотек (Boost.Asio, Qt Network и др.). Так же стоит понимать, что многие компании пишут свои библиотеки и поэтому стоит лучше познакомиться с основами сетевого программирования, чтобы легко вникать в любую из реализаций
Что касается Boost.Asio, то для него есть перевод книги Boost.Asio C++ Network Programming
🔗 Ссылочки со спискоми библиотек
• Awesome C++
• C++ Networking libraries
• Stackoverflow (старый пост)
Для C++ пока, к сожалению, не написали стандартную библиотеку для работы с сетью. Но, зато есть множество хороших библиотек (Boost.Asio, Qt Network и др.). Так же стоит понимать, что многие компании пишут свои библиотеки и поэтому стоит лучше познакомиться с основами сетевого программирования, чтобы легко вникать в любую из реализаций
Что касается Boost.Asio, то для него есть перевод книги Boost.Asio C++ Network Programming
🔗 Ссылочки со спискоми библиотек
• Awesome C++
• C++ Networking libraries
• Stackoverflow (старый пост)
🐱🎨🙏🤖 10 самых странных языков программирования, о которых вы никогда не слышали
Эзотерические языки разрабатывают в концептуальных, экспериментальных и развлекательных целях. Их общая черта — максимально запутанный и странный синтаксис, понятный только посвященным. В этой подборке — языки, которые выбрали бы Ходор, доктор Лектер, Малевич, Джеймс Бонд, Терминатор и Луи Армстронг, если бы решили войти в айти.
👉 Читать статью
👉 Зеркало
Эзотерические языки разрабатывают в концептуальных, экспериментальных и развлекательных целях. Их общая черта — максимально запутанный и странный синтаксис, понятный только посвященным. В этой подборке — языки, которые выбрали бы Ходор, доктор Лектер, Малевич, Джеймс Бонд, Терминатор и Луи Армстронг, если бы решили войти в айти.
👉 Читать статью
👉 Зеркало
Forwarded from Библиотека собеса по C++ | вопросы с собеседований
🔮 Историческая справка по lambda'м
Вышла обзорная статья по развитию lambda-выражений для разных стандартов языка
👉 Краткий обзор развития лямбда-выражений в C++11, C++14, C++17 и C++20
#junior
Вышла обзорная статья по развитию lambda-выражений для разных стандартов языка
👉 Краткий обзор развития лямбда-выражений в C++11, C++14, C++17 и C++20
#junior
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Forwarded from Библиотека собеса по C++ | вопросы с собеседований
👔 Что такое consteval?
consteval — спецификатор для функций, появился в C++20. Он обозначает, что функция будет вычислена на этапе компиляции. В этом его главное отличие от constexpr, который может быть вычеслен как на этапе компиляции, так и на этапе выполнения программы. consteval не получится вызвать во время выполнения программы, будет ошибка!
consteval — спецификатор для функций, появился в C++20. Он обозначает, что функция будет вычислена на этапе компиляции. В этом его главное отличие от constexpr, который может быть вычеслен как на этапе компиляции, так и на этапе выполнения программы. consteval не получится вызвать во время выполнения программы, будет ошибка!
👔 constinit переменные
constinit — это спецификатор для определения переменных появившийся в C++20, которые должны быть проинициализированына этапе компиляции. Служат как более предсказуемая альтернатива static переменным, которые инициализируются при первом обращении к ней. Стандарт гарантирует, что если constinit переменную нельзя было проиницализировать на этапе компиляции, программа не соберётся, и будет выведена ошибка
constinit — это спецификатор для определения переменных появившийся в C++20, которые должны быть проинициализированына этапе компиляции. Служат как более предсказуемая альтернатива static переменным, которые инициализируются при первом обращении к ней. Стандарт гарантирует, что если constinit переменную нельзя было проиницализировать на этапе компиляции, программа не соберётся, и будет выведена ошибка
🧿 Знания — сила! Что должен изучить каждый программист?
❗Мы запускаем опрос среди наших читателей, чтобы выяснить, какие ключевые компетенции необходимо развивать программисту на текущий момент. Какие направления стоит изучать в первую очередь? Уровень каких знаний влияет на зарплату в отрасли?
‼️ Мы проведем анализ ответов и составим ТОП-лист навыков, которые не помешают освоить каждому программисту и разработчику для успешного карьерного роста!
👉 Опросик
❗Мы запускаем опрос среди наших читателей, чтобы выяснить, какие ключевые компетенции необходимо развивать программисту на текущий момент. Какие направления стоит изучать в первую очередь? Уровень каких знаний влияет на зарплату в отрасли?
‼️ Мы проведем анализ ответов и составим ТОП-лист навыков, которые не помешают освоить каждому программисту и разработчику для успешного карьерного роста!
👉 Опросик
❗Полезная библиотека Input parser
Современная библиотека для парсинга командной строки
👉Ссылочка (github)
Современная библиотека для парсинга командной строки
👉Ссылочка (github)
Forwarded from Библиотека собеса по C++ | вопросы с собеседований
🔮 public, private и protected
public, private и protected — модификаторы ограничивающие доступ к методам и полям класса. Они не ограничивают видимость. private члены видны вне класса, но их нельзя использовать
🧿 Описание
• public — доступен всем, кто видит определение класса
• private — доступен только самому классу (то есть его членам) и друзьям (friend) класса
• protected — доступен только классам, которые являются производными от данного
#junior
public, private и protected — модификаторы ограничивающие доступ к методам и полям класса. Они не ограничивают видимость. private члены видны вне класса, но их нельзя использовать
🧿 Описание
• public — доступен всем, кто видит определение класса
• private — доступен только самому классу (то есть его членам) и друзьям (friend) класса
• protected — доступен только классам, которые являются производными от данного
#junior
❗ Вводная лекция об RISC-V
RISC-V — открытая система команд и процессорная архитектура, которая в последнее время становится всё более популярной
В лекции обсуждаются темы самой архитектуры, кросс-компиляции, ассемблер RISC'а и расширения к архитектуре
👉 Открытие лаборатории RISC-V в МФТИ (YouTube)
RISC-V — открытая система команд и процессорная архитектура, которая в последнее время становится всё более популярной
В лекции обсуждаются темы самой архитектуры, кросс-компиляции, ассемблер RISC'а и расширения к архитектуре
👉 Открытие лаборатории RISC-V в МФТИ (YouTube)