cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
89 stars 0 forks source link

арные операторы #236

Open apolukhin opened 3 years ago

apolukhin commented 3 years ago

Перенос предложения: голоса +0, -10 Автор идеи: post-increment

Позволить операторам иметь произвльную арность

Пример языка Julia.

image

Подобную механику было бы интересно встроить в С++.

Что это может дать? Основное достоинство которое мне видится это отложенные вычисления.

//with some other proposals this looks like
auto operator+(std::string&& init, std::string&&... args )
{
    return std::lazy_sum{std::forward(init), std::forward(args)...};
}

std::string sum = s1+s2+s3;
// magic is done when lazy_sum is passed to operator=
// buffer is allocated for given size then copying of data without
//    temporary strings is made

Сейчас подобное провернуть удастся с помощью binary-expression-tree. Для чего потребуется рекурсивное определение сложения для lazy-sum и string.

Жду ваших мыслей и комментариев по этому поводу.

apolukhin commented 3 years ago

Павел, 6 ноября 2017, 16:24 Всё, что можно сделать средствами языка, надо делать, а не тащить пропозал в ядро.