170 похожих чатов

Народ, а применяется ли в С++ разработке подход когда библиотеки

распространяются не в виде исходного кода С++ а в виде скомпилированного в байткод (например webassembly) модуля? Это ведь очень крутая идея потому что с этим подходом можно уходить от стандарта языка в каких-то сильно неудобных местах или добавлять/фиксить какие-то фичи плюсов которые бесят больше всего

Например в стандарте есть UB при переполнении чисел а мне хотелось бы писать код (где нужно эффективно работать с числами) как будто UB нет. Или например в стандарте не определен порядок вычисления аргументов и частей выражения а очень хочется писать код так же как и на других популярных языках (где порядок строго определен слева направо)
Также хочется иметь возможность писать designated initializers в любом порядке и менять поля лямбд без необходимости писать каждый раз mutable.

И если все эти проблемы и неудобства можно решить тонко настроив компилятор или написав к нему плагины/расширения то евангелисты С++ сразу спросят "А КАК ЖЕ ПОРТАТИВНОСТЬ?!!!" потому что такой код 1) может не скомпилироваться или скомпилируется с другим поведением на другом компиляторе 2) может работать по-другому на другой процессорной архитектуре. И вот здесь распространение библиотек в виде компиляторно-независимого и платформо-независимого кода (например webassembly) решает оба этих пункта

3 ответов

2 просмотра

Дааааааааааааааа

Библиотека с C API разве что (и, соответственно, C ABI)

>> Например в стандарте есть UB при переполнении чисел а мне хотелось бы писать код (где нужно эффективно работать с числами) как будто UB нет эффективно и без оптимизации из-за отсутствия гарантии не переполнения несовместимо, логическая ошибка >> Это ведь очень крутая идея потому что с этим подходом можно уходить от стандарта языка в каких-то сильно неудобных местах это ужасная идея как раз по той причине, что это уход от стандарта языка >> порядок вычисления аргументов и частей выражения практика показывает, что подобный код ужасен и писать его не стоит хотя бы всилу читаемости >> менять поля лямбд без необходимости писать каждый раз mutable ого какие громадные проблемы, написать mutable когда оно mutable, вам в куче языков где const по умолчанию это как было? Норм? >> все эти проблемы и неудобства Вообще ни одной проблемы и неудобства не увидел в перечисленном

Похожие вопросы

Обсуждают сегодня

Добрый верчер, а стоит ли использовать lea для вычислений произвольных значений, как замена add/imul?
strewg
28
Нужна помощь c небольшой программой на Дельфи (Delphi)! Задача: воспроизведение видео из зашифрованного файла. Комментарий: я знаю, как можно легко зашифровать видеофайл и п...
Анна
2
У меня такой вопрос. Вот мне нужно сделать бинарный файл с ассемблер кода: [bits 32] [org 0x7c00] start: cli mov esp, stack_space call _main hlt section .tex...
Dmytro Parkhomenko
26
Опять же повторяюсь - там всё закрыто, и очень-очень сложно. Это столетние наработки. Нет смысла вообще думать об этом. Достаточно просто в голове уложить "вот есть предсказат...
КТ315
15
@FAssembler не знаешь, fasm поддерживает thumb?
Александр Белокопытов
46
Фуух, победила раскраску. Ну почти) Кому что посчитать? )))
Катерина Свиридова
20
Сколько гигабайт у тебя набирается?
Maksim Lapshin
17
Вот сравним знания, которые требуются, чтобы знать все эти условности С компилятора, и знания, которые требуются чтобы писать программы на ассемблере. Что проще?
КТ315
23
Разве ret в NASM завершает программу?! Почему там не используется ExitProcess?
Alexey
13
model small .stack 256 .data arr db 16 dup(?) mes db 10, 13, "Enter 16 numbers: $" mes1 db " $" mes2 db 10, 13, "Sorted: $" mes3 db 10, 13, "$" i db 0 .code ...
Ыиу
42
Карта сайта