All streams
Search
Write a publication
Pull to refresh
43
0
Send message

для салонов и индивидуалок две левых симки

Сорян за оффтоп, но к двум левым симкам тут ещё нужен абонемент тесты на венерические делать раз в месяц хотя бы.

Но зачем нужен expected, если есть эксепшены?

Во многих проектах отключают exceptions и rrti, например Google C++ Style Guide явно про это говорит, и по ссылке описываются за/против.

Этож std::optional с множественными if на стороне вызова который заполняет happy-path - бойлерплейтом проверки ошибок.

Ты и в Си также руками пишешь, ```FILE* fp = fopen(..); if (fp != NULL)...````

Кстати, отказ от эксепшенов приводит к тому, что RAII перестаёт нормально работать и появляются всякие 2ух этапные конструирования и IsValid().

Ты имел ввиду, что без эксепшенов нет возможности из конструкторов сообщить, что произошла ошибка? Вообще хорошая манера делать конструкторы noexcept, а конструировать отдельной функцией типа std::optional<Something> MakeSomething(args), которая и вызовет приватный конструктор типа Something.

Настоящие сварщики на C++20 пишут std::chrono::local_seconds, ещё чтобы и без таймзон.

При описании модели данных, часто приходится создавать новые типы, в первую очередь, используя такие ключевые слова как class/struct/record
...
using Timestamp = int64_t;

Настоящие герои пишут enum class Timestamp : int64_t, ещё и когда складывать начнёшь, то тебе компилятор по рукам надаёт.

Да и std::expected я бы в рабочий проект пока не потащил бы, так как поддерживается еще не всеми компиляторами.

std::expect ещё долго сомневался, стать ли ему стандартом в C++23, а мы уже давно использовали реализацию от TartanLlama
Пользуясь случаем, добавлю, что ещё мы fmtlib так тащим, потому что std::format сосёт.
Ещё мы тащим chrono которого недопилили в C++20.
Я уже говорил про std::ranges?
А вообще, я зол на них, что C++20 модули завезли только в VC++.

в С++ компилятор конечно постарается, но во первых вы добавляете лишние конвертации, во вторых запрещаете много где RVO, про то что вы из примитивных типов делаете не примитивные и во что это выльется для регистров и прочего промолчу

RVO идёт лесом из-за возврата std::expect, вместо конкретного типа?

Dart? Язык немного взлетает только благодаря Flutter.
Отвечу сюда, потому что для C++ такое нагромождение шаблонной магии ещё как-то можно оправдать, но Dart, как замена JS, там порог вхождения в отрасль чуть ниже, так что вы их только напугаете.

в языках такие проверки могут называться assert или require

Наверное тут имелось ввиду requires из c++20

typename Tag::Type value

Я бы в стиле C++библиотеки назвал typename Tag::value_type

С небольшой помощью ChatGPT я смог создать эту программу всего за несколько минут

Скайнет уже среди нас.

Там как-то странно, IsHiddenFile() реагирует не только на ".", но и на "..", вроде как это надо было в другом месте отфильтровать бы.

Гадаю по фотографии, делаю кодревью, дорого. Один файл, и только сегодня, бесплатно. Рандом сказал read.cpp.

  • Макросы - зло, USERVER_NAMESPACE_BEGIN, UASSERT. У Вас современный C++, есть и static_assert, и if costexpr.

  • boost::filesystem::path - уже в C++17 появился , пожалуйста не тащите буст, когда можно без него.

  • Первая функция принимает const boost::filesystem::path& path, вторая std::string_view path - пожалуйста, определитесь, то у Вас path, а иначе c++ implicit conversion это зло.

  • Nit: не будем тратить Ваше время~

Уже захотелось прислать патч для cmake, чтобы он из-коробки умел .prc цель делать.

m68k-palmos-g++ -v в студию, а то такое ощущение, что там даже -std=c++11 не будет, а это меня сильно ограничивает. Минимум c++14 хотелось бы, таковое многие библиотеки требуют, но оптимально c++17, конечно.

Сложно ли писать для Palm OS?

Когда под словом программист понималось Lisp, Fortran, Pascal, C/C++ (причём плюсовая шаблонная магия была уделом экспертов), тогда было логично писать для устройства как можно ближе к "железу", потому что у нас ресурсов мало, у нас батарейку надо пожалеть, и компилировали сразу в бинарный вид для исполнения на целевом железе, и без накладных расходов, в виде GC.

Но рынок диктовал свой ритм, Time To Market (TTM), и Web был тому двигателем. Надо было делать много приложений, и разработчики должны были быть дешёвыми. Ни о каком C/C++ и речи не идёт.

Кстати, что случилось, почему телефоны на Firefox, где всё просто webview? Если вы не умеете писать на C/C++, а только на этих HTML/CSS/JS, то вот вам решение.

Я начал верить, что синтаксис Питона, и компиляция и скорость как плюсы, когда только появился Shed Skin.

putc(c);

Наверное тут нужно либо stdout указать, либо putchar использовать.

       int putc(int c, FILE *stream);
       int putchar(int c);

Наигрались в наследование в C++ и Java, так было "модно" в конце 90х и нулевых. Сегодня модно полиморфизм, но без наследования, также и в Golang.

Мне лично мешает перейти на раст следующие пункты

  • на работе раст пока не случился, придётся практиковаться на пет-проектах

  • на рынке пока мало вакансий на раст, надо подождать ещё, взлетит/не взлетит

  • новые стандарты C++ продлевают ему жизнь и не позволяют совсем выкинуть из индустрии высоконагруженных серверов, встроенных систем, игр, т.д.

  • сложно в голове удерживать синтаксис, а главное дизайн-паттерны сразу нескольких языков, например, C++, Golang, Python, и если на каком-нибудь не пишешь, скажем, 3 месяца, то теряется навык

Information

Rating
4,491-st
Registered
Activity