На 100%. Минералка выручает.)
На 100%. Минералка выручает.)
Код: Выделить всё
int32_t value;
auto[ptr, err] = std::from_chars(first, last, value);Так про то и речь, что вернуть по ссылке я могу что угодно и в C. А код ошибки еще и анализировать надо после каждого вызова метода. Значит pipeline не сделать. В итоге, от C++ на МК я получаю только некоторое количество синтаксического сахара, а большинством именно функциональных преимуществ воспользоваться не могу.Reflector писал(а):стандартная функция возвращает код ошибки и указатель, а результат возвращает по ссылке.
Именно, итого взяли C++, а кодируем так же, как на CReflector писал(а):в С тоже придется анализировать код ошибки после каждого вызова
Не стоит так явно заниматься демагогий. Нет в стандарте языка. Но в виде функций вне стандарта все давно есть.Reflector писал(а):std::from_chars() вместе с огромным количеством других стандартных функций в С тоже нет
Во-первых, это далеко не единственное преимущество C. Например, чаще всего C выбирают вместо C++ из-за поддержки стандартизированного ABI, чем C++ уж точно похвастаться не может. Даже если выбирается C++, то ABI приходится делать C-подобным, отказываясь от передачи объектов и/или ссылок на них.Reflector писал(а):так что единственное его преимущество - это относительная простота, но это не важно для тех кто С++ уже знает
VladislavS писал(а):Где вы переход на личности усмотрели? Ссылку, пожалуйста, на фразу, на слово, на что угодно...
VladislavS писал(а):Вы каким-то словоблудием занимаетесь.
Код: Выделить всё
alias a = b;
alias u16 = ushort;Код: Выделить всё
void foo(int* ptr) { ... }Код: Выделить всё
void foo(int*& ptr) { ptr++; }Кто есть вне стандарта? From_chars() там быть никак не может, т.к. она возвращает результат по ссылке или может вне стандарта С есть шаблонные или constexpr функции? Может даже классы есть? В С убогая и не безопасная стандартная библиотека которая практически не развивается, для эмбедда это еще не так страшно, а на ПК написание программ на С превращается в сплошное велосипедостроение и шастание по чужим github-ам в поисках библиотек сомнительного качества...ПростоНуб писал(а):Не стоит так явно заниматься демагогий. Нет в стандарте языка. Но в виде функций вне стандарта все давно есть.
К счастью это легко проверить, поднимите руке те, кто пишет на С, а не С++, из-за поддержки стандартизированного ABIПростоНуб писал(а):чаще всего C выбирают вместо C++ из-за поддержки стандартизированного ABI, чем C++ уж точно похвастаться не может.
Какая связь простого из-за небольшого для изучения размера языка с надежным кодом? Бейсик простой, но значительно надежнее С. C#10 один из самых громоздких языков и в этом плане конкурирует с С++20, но на нем тоже пишутся более простые и надежные программы чем на С. Можно прочитать брошюрку по С на 30 страниц и как-то начать на нем писать, но можно еще прочитать статью на десяток страниц и дополнительно привнести в С некоторые не особо замысловатые фичи из С++ которые сделают код чище и надежнее, хотя надежнее он станет уже просто от того, что его компилируют более привередливым компилятором.ПростоНуб писал(а):Во-вторых, простота позволяет писать более надежный код.
Странно, а в стандарте написано не так: "returns a value of type from_chars_result", гдеReflector писал(а):From_chars() там быть никак не может, т.к. она возвращает результат по ссылке
Код: Выделить всё
struct from_chars_result {
const char* ptr;
std::errc ec;
};
Было бы смешно, если не было бы так грустно. Для примера, в MS SQL, PostgreSQL или Oracle подключить скомпилированное расширение в виде so/dll - элементарно, причем динамически без остановки сервиса. Потому что они написаны на C и ABI стандартизирован. А вот к Clickhouse - только с полной перекомпиляцией всего Clickhouse и рестартом сервиса, так как он написан на C++, а ABI в C++ меняется даже от версии к версии одного компилятора, не говоря уже о разных.Reflector писал(а):К счастью это легко проверить, поднимите руке те, кто пишет на С, а не С++, из-за поддержки стандартизированного ABI
Речь не о простоте для изучения (не думаю, что к C это относится, так же, как, для примера, к Lisp). А о простоте синтакиса. Читайте внимательней:Reflector писал(а):Какая связь простого из-за небольшого для изучения размера языка с надежным кодом?ПростоНуб писал(а):Во-вторых, простота позволяет писать более надежный код.
ПростоНуб писал(а):Процитирую Линуса Торвальдса: "One of the absolute worst features of C++ is how it makes a lot of things so context-dependent - which just means that when you look at the code, a local view simply seldom gives enough context to know what is going on."