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

Ребята, у меня появилась идея для написания пропозала по улучшению

синтаксиса C++.

Идея заключается в добавлении "Fat Pipe Operator" в C++.

Мотивация и Область Применения
C++ является фундаментом в мире разработки программного обеспечения, предлагая беспараллельную производительность и универсальную платформу, которая обслуживает различные области, включая системное программирование и разработку игр. Несмотря на его надежность, разработчики часто отмечают относительно многословный синтаксис, особенно по сравнению с более кратким синтаксисом современных языков программирования. Предложение "Fat Arrow Syntax" выходит как решение этой проблемы, стремясь наполнить C++ более стройным и выразительным синтаксисом для формулирования функций и лямбд, особенно тех, которые заключают в себе одно выражение. Этот синтаксис не только является воплощением краткости, но и согласует C++ с синтаксическими нововведениями, наблюдаемыми в других распространенных языках, таких как JavaScript, C#, Kotlin, Dart, Rust, тем самым снижая когнитивную нагрузку для разработчиков, работающих с несколькими языками.

Пара примеров:

Без Fat Arrow Syntax:

c++
class Circle {
public:
double getRadius() const { return radius; }
private:
double radius;
};

С Fat Arrow Syntax:

c++
class Circle {
public:
double getRadius() const => radius;
private:
double radius;
};


Без Fat Arrow Syntax:

c++
button.setCallback([]() { std::cout << "Button clicked!" << std::endl; });

С Fat Arrow Syntax:

c++
button.setCallback([]() => std::cout << "Button clicked!" << std::endl);

Без Fat Arrow Syntax:

c++
std::transform(vec.begin(), vec.end(), vec.begin(), [](auto n) { return n * n; });

С Fat Arrow Syntax:

c++
std::transform(vec.begin(), vec.end(), vec.begin(), [](auto n) => n * n);


Что скажете, стоит тужится и идти дальше или идея провальна?

11 ответов

13 просмотров

Чтобы просто в однострочнике писать без скобок?

В лямбдах ещё [] убери)

Пока мне нравится. Подводных камней не вижу.

И зачем…

Похожие пропозалы уже были

Artur- Автор вопроса
Artur
Можно по подробнее ?

https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0573r2.html

Тебе дорога - в Haskell.

недожал, надо n => n * n

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

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

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Я вот подумал. SSE выполняет операции максимум с 64-битной точностью. А FPU - всегда с 80-битной. Разве не должно быть FPU точнее тогда?
The Bird of Hermes
13
как быть с принтером? такой подход прокатит?
zamtmn
12
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Я не понимаю, это троллинг или что? Швабрика поддерживают, который буквально пишет на ассемблере взаимодействия с винапи. Я это ещё написал загрузчик и хоть что-то изучаю в о...
Shadow Akira
6
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Карта сайта