Комментарии 11
A.
1. Я извиняюсь, но мне незнаком тип std::boolean.
2. Тут приведён промежуточный синтаксис концептов, от которого отказались:
{ a == b } -> bool можно записать как { a == b } -> std::same_as или { a == b } -> std::convertible_toПоэтому концепт должен выглядить примерно так:
B. Для классов теперь можно использовать параметры шаблона без типа. Наверное, имелось ввиду Class Types in Non-Type Template Parameters (классы в параметрах не типах, звучит коряво, конечно)
C. std::unwrap_decay_ref -> std::unwrap_ref_decay
D. В индексах запрещено использовать операции "," — пока только не рекомендуется (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1161r3.html).
template<typename T>
concept EqualityComparable = requires(T a, T b) {
{ a == b } -> std::boolean;
{ a != b } -> std::boolean;
};
1. Я извиняюсь, но мне незнаком тип std::boolean.
2. Тут приведён промежуточный синтаксис концептов, от которого отказались:
{ a == b } -> bool можно записать как { a == b } -> std::same_as или { a == b } -> std::convertible_toПоэтому концепт должен выглядить примерно так:
template<typename T>
concept equality_comparable = requires(T a, T b)
{
{ a == b } -> std::same_as<bool>;
{ a != b } -> std::same_as<bool>;
};
B. Для классов теперь можно использовать параметры шаблона без типа. Наверное, имелось ввиду Class Types in Non-Type Template Parameters (классы в параметрах не типах, звучит коряво, конечно)
C. std::unwrap_decay_ref -> std::unwrap_ref_decay
D. В индексах запрещено использовать операции "," — пока только не рекомендуется (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1161r3.html).
+3
Я извиняюсь, но мне незнаком тип std::boolean.а это и не тип, это концепт. Насколько понимаю, синонимичный std::is_convertible_to
классы в параметрах не типах, звучит коряво, конечно«значения классов в параметрах шаблонов»
0
а это и не тип, это концепт. Насколько понимаю, синонимичный std::is_convertible_to
Странно, нигде не видел. Что-то похожее en.cppreference.com/w/cpp/concepts/boolean-testable, но называется boolean_testable.
значения классов в параметрах шаблонов
Здесь важно, что это параметры не типы. В параметрах типах эта возможность есть изначально.
0
А что за ключевое слово такое violate? Имелось в виду volatile?
+5
Когда рефлексия будет уже?!
0
Какой-то очень плохой перевод получился.
+1
А зачем надо
если можно
for (auto v = std::vector{1, 2, 3}; auto& e : v)
,если можно
for (auto e : {1, 2, 3})
?0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Комитет ISO утвердил стандарт «C++20»