std::meta::can_substitute
De es.cppreference.net
| Definido en el encabezado <meta>
|
||
template< std::meta::reflection_range R = std::initializer_list<std::meta::info> >
consteval bool can_substitute( std::meta::info templ, R&& arguments );
|
(desde C++26) | |
Sean Z la plantilla representada por templ, Args... los valores, tipos o plantillas representados por elementos sucesivos de arguments, determina si Z<Args...> es un template-id válido.
Devuelve true si Z<Args...> es válido y no nombra una función con tipo de retorno de marcador de posición no deducido; de lo contrario devuelve false.
Parámetros
| templ | - | una reflexión de la plantilla |
| argumentos | - | un rango de reflexiones |
Valor de retorno
Un valor booleano que indica si la sustitución es válida.
Excepciones
Lanza std::meta::exception a menos que templ represente una plantilla, y cada elemento de arguments represente una construcción adecuada como argumento de plantilla.
Notas
Si la formación de Z<Args...> conduce a un fallo fuera del contexto inmediato, el programa está mal formado.
Ejemplo
Ejecutar este código
#include <meta>
#include <tuple>
static_assert(std::meta::can_substitute(^^std::tuple, {^^void}));
static_assert(can_substitute(^^std::tuple, {^^int, ^^int})); // using argument-dependent lookup
static_assert(!can_substitute(^^std::tuple, {std::meta::reflect_constant(42)}));
consteval
{
try
{
can_substitute(^^std::tuple, {^^::}); // Throws std::meta::exception
// the global namespace cannot be a template arg
} catch (std::meta::exception&) {}
}
int main() {}
Véase también
(C++26) |
obtiene una reflexión del resultado de sustituir argumentos reflejados en la plantilla reflejada (plantilla de función) |
(C++26) |
devuelve una reflexión que representa un valor u objeto de parámetro de plantilla, adecuado para su uso como argumento de plantilla constante (plantilla de función) |
(C++26) |
devuelve una reflexión que representa un objeto, adecuado para su uso como argumento de plantilla constante (plantilla de función) |
(C++26) |
devuelve una reflexión que representa una función, adecuado para su uso como argumento de plantilla constante (plantilla de función) |