Маша С++
104 subscribers
54 photos
2 files
65 links
Учу C++ и не только вместе с вами, мои котятки)
Download Telegram
Channel photo updated
Маргарет Гамильтон рядом с распечатками текста программы, которую она и её команда в MIT создали для миссии «Аполлон-11» (1969) #история
А сегодня я узнала, что в C++для внутриклассовых инициализаторов можно писать условие и оно даже будет работать при нескольких конструкторах:
class class_a {
public:
class_a() : m_double(100) {}
class_a(double d) : m_double(d){}
double m_double{ 1.0 };
std::string m_string{ m_double < 10.0 ? "alpha " : "beta " };
};

class_a obj1(5.0);
class_a obj2(15.0);
class_a obj3;

std::cout << obj1.m_string << obj2.m_string << obj3.m_string << std::endl;
/// alpha beta beta
#cpp
👍2
Автор нескольких книг Джейн Фридман в статье "Лучше бы мои книги пиратили, чем это" пишет, что Amazon завален мусорными книгами, по всей видимости сгенерированными с помощью AI. Все бы ничего, но она обнаружила такие книги с указанием ее имени на обложке 😁
https://janefriedman.com/i-would-rather-see-my-books-pirated/
Я одна не понимаю, почему при объявлении чисто виртуальной функции в 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