ExpertiDict

C++ · Avançado · Inglês · Técnico

requires expression

ɹɪˈkwaɪɚz ɪkˈspɹɛʃ.ənsubstantivo

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

Veja também

Todos os termos de C++