Поскольку предложение о отражении только что было принято в черновик C ++ 26, мне интересно, можно ли использовать ожидаемые объекты для автоматического генерации нескольких арифметических операторов для класса? | = , > = , будет ли способ генерировать все операторы, используя следующий шаблон?
Код: Выделить всё
// This is not legal C++, it is only for illustration purpose
template
struct myclass {
using value_type = T;
template
requires requires(T& x, const U& y){{x @= y} -> std::same_as;}
constexpr myclass& operator@=(const U& other) {
value @= other;
return *this;
}
T value;
};
Мне интересно, может ли это быть достигнуто с помощью представления оператора, описанного в meta.reflection.operators ?
Подробнее здесь:
https://stackoverflow.com/questions/796 ... -operators