C++ · Avançado · Inglês · Técnico
requires expression
Expressão do C++20, como requires(T a) { a + a; }, que testa na compilação se certas operações são válidas para um tipo. Dá true ou false, sem executar nada.
Onde usar
É a peça com que se escrevem concepts: lista as operações e os tipos de retorno que um tipo precisa oferecer. Também pode ser usada diretamente em um if constexpr.
Em código
template <typename T>
constexpr bool tem_size = requires(T t) {
t.size();
};
static_assert(tem_size<std::vector<int>>);
static_assert(!tem_size<int>);Exemplos
The requires expression checks that the type has a size method.
A requires expression checa se o tipo tem um método size.
Write the requirement as a requires expression inside the concept.
Escreva o requisito como requires expression dentro do concept.
Cuidado
Não confunda a cláusula requires, que restringe um template, com a expressão requires, que avalia requisitos; a forma requires requires junta as duas.
Sinônimos
expressão de requisitos