Маша С++
104 subscribers
54 photos
2 files
65 links
Учу C++ и не только вместе с вами, мои котятки)
Download Telegram
Я одна не понимаю, почему при объявлении чисто виртуальной функции в C++11 не используют nullptr вместо 0?

virtual bool fun() = 0;
virtual bool fun() = nullptr; // better, huh?

#cpp
👍2
Автор популярного (300k юзеров) расширения для Хрома для увеличения изображений по ховеру публикует на гитхабе поступающие ему предложения по "монетизации" 👌 (мы-то знаем) своего экстеншна: https://github.com/extesy/hoverzoom/discussions/670
#github #opensource
Всегда забавляло: запомни, что 17-я студия на самом деле 15-я, 19-я это 16-я, а 13-ю вообще почему-то пропустили.
Почему нельзя просто по году назвать 🙈
😁3
Объясните мне, почему в std::string нет таких казалось бы базовых вещей как например split?
Хорошо, что хоть вот таких вещей добавили в новые стандарты (это мы ждем).
Даешь больше синтаксического сахара, ведь от него не растут бока 😜.
#cpp
Thanks, M$
Недавно на моей электронной книжке PocketBook (кстати, рекомендую) почему-то отказывалась открываться одна PDF-ка (вернее открывалась, но не отрисовывалась). Как оказалось, такое бывает не только у меня, но я нашла такой замечательный проект как KOReader (https://github.com/koreader/koreader) с простыми инструкциями по установке и теперь могу читать книжку. Есть поддержка Android • Cervantes • Kindle • Kobo • Linux • Pocketbook • reMarkable. Вооот 😀
#github #opensource
🔥1
Никогда не понимала дефолтного поведения git:
$ git push
fatal: The current branch login has no upstream branch.
To push the current branch and set the remote as upstream, use

git push --set-upstream origin login

Ну делай это по-умолчанию, ведь это нужно в большинстве случаев, нет?
#git
Наверное никогда не привыкну к .hpp, да и не понятно зачем так делать 🧐 (изменения конечно для мажорного релиза, ага)
Ссылка: https://github.com/opendocument-app/OpenDocument.core/releases/tag/v3.0.0
#cpp #github
Если вы хотите стать C++ разработчиком, то пожалуйте годный (ну мне так кажется) роадмап (+ английский). Иду по нему, есливчо.
#cpp

https://salmer.github.io/CppDeveloperRoadmap/Russian/
Котятки, а вы знаете как в C++ работает switch и почему так быстро? нет? быстро перечитываем Страуструпа (задачка оттудава, код корректный есливчо).
3
Как вы знаете, мои котятки, в cmake есть 3 способа добавить target:
- add_executable
- add_library
- add_custom_target


Все бы ничего, но почему бы не назвать их все *_target?
- add_executable_target
- add_library_target
- add_custom_target


Ведь так всё более явно, нет? CMake и так сложен для старта...
#cmake
Вопрос, что выведет CMake?😉
Ответ: только Hello
В первом if, ${VAR2} выведется в VAR1, что является переменной и она выведется в YES, то есть первый if сработает.
Во втором If кавычки не дадут произойти такому сбивающему моменту и он не выполнится. Вооот.
#cmake
Лично я считаю, что auto в c++ нужно использовать только тогда, когда это повышает читаемость, например когда тип уже находится на той же строке кода или тип не так важен, например итератор. Ненавижу когда используют auto для вывода типа результата вызова функции: auto r = f();
Приходится открывать объявление f, чтоб убедиться, что она возвращает то что нужно. Еще мне кажется, что частенько auto это лень кодописателя, перекладываемая на кодочитателя. На мысль написать про
auto натолкнула эта статья https://habr.com/ru/articles/754662/
#cpp
🔥1
Есть такой канал (не реклама) "Книги для программистов", там делают краткий обзор книг и дают ссылку на скачивание (не делайте так, ок?☺️).
Постов много, книги вроде свежие, но мне что-то ничего не приглянулось, за качество обзоров также не ручаюсь. Поискала тему "CMake" и нашла лишь одну, хотя книг много (позже поделюсь), так что вооот.
Подписчиков: 155k.
Ссылка: https://t.me/progbook
#обзорканалов
Ужас, почему я этого не знала. 😱 Оказывается поток ввода можно связать (tie()) с потоком вывода, так что чтение из ввода приведет к сбросу (flush()) буфера потока вывода.

Так, библиотечные cin и cout уже связаны, а потому например приглашение на ввод от cout<<"enter:" гарантированно выведется при запроса на ввод от cin >>val.

Связать можно и другие потоки, например fstream. Подробности тут: https://en.cppreference.com/w/cpp/io/basic_ios/tie

Алярм: это нет тот tie(), что в <tuple>😉.

#cpp
Наверное уже многие видели, что в C++ 26 добавят переменную _ , да да прямо как в этом вашем питоне.
Что это дает? Например, можно забить на неиспользуемую переменную в цикле, да так что не будет ворнинга от компилятора.
Пример:
    std::size_t count = 0;
for (const auto& _: list) {
++ count;
}

А еще теперь можно не ломать голову над названием блокировок (самая мякотка в том, что деструктор вызовется так как вы и ожидали):
std::unique_lock _{list_lock};

Ну и конечно же распаковка кортежей:
auto [_, _, value, _] = list.do_something();

Больше про эту тему и другие нововведения про C++ 26 расскажет Антон Полухин тут (все примеры оттуда): https://habr.com/ru/companies/yandex/articles/753260/

#cpp #cpp26
👍1
К слову о пиратстве. Это плохо, да и тупо незаконно. Я как-то читала книгу по JS и там в начале было написано, что автор потратил на ее написание целый год фуллтайма и просил (именно просил) её не пиратить, так как жил он все это время на продажи других своих книг. К слову, книгу я эту купила, хотя это было дорого. Но бывают случаи, когда книга старая и ее никак не достать даже в библиотеке, или ее нельзя купить или вы нищий студент и денег тупо нет.
Для таких случаев некоторые нехорошие люди используют Library Genesis, которую находят через поисковик. А вот вы не делайте так, пиратство это зло 😁
ТГ-канал любимейшего новостного (и не только) портала об opensource opennet.ru.
Комменты конечно же нужно читать на самом сайте (а также писать, ведь есть аноним), но вот быстро получать новости в любимой тележеньке можно и через канал (официальный он или нет я не знаю).
Подписчиков: 10k
Ссылка: https://t.me/opennet_ru
#обзорканалов
Бесполезное. В C++14 в <iomanip> добавили std::quoted(), которая позволяет обрамлять строку двойными кавычками и экранировать обратным слешем кавычки внутри строки (как в CSV или XML). Пример:
#include <iomanip>

std::string str("str\"ing");
std::cout << std::quoted(str)

Выведет (да, вот так вот с 3 кавычками и слешом):
"str\"ing"

Без quoted выведет: str"ing

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

Наверное это также может быть удобным при отладке. Плюс, quoted() можно использовать для обратного процесса (отковычивания), если взять поток ввода, а не вывода.

Подробности: https://en.cppreference.com/w/cpp/io/manip/quoted

#cpp