std::meta::can_substitute
Depuis fr.cppreference.net
| Défini dans l'en-tête <meta>
|
||
template< std::meta::reflection_range R = std::initializer_list<std::meta::info> >
consteval bool can_substitute( std::meta::info templ, R&& arguments );
|
(depuis C++26) | |
Soit Z le modèle représenté par templ, Args... les valeurs, types ou modèles représentés par les éléments successifs de arguments, détermine si Z<Args...> est un identificateur de modèle valide.
Retourne true si Z<Args...> est valide et ne nomme pas une fonction avec un type de retour placeholder non déduit ; sinon retourne false.
Paramètres
| templ | - | une réflexion du modèle |
| arguments | - | une plage de réflexions |
Valeur de retour
Une valeur booléenne indiquant si la substitution est valide.
Exceptions
Lève std::meta::exception à moins que templ ne représente un modèle et que chaque élément de arguments ne représente une construction appropriée comme argument de modèle.
Notes
Si la formation de Z<Args...> conduit à un échec en dehors du contexte immédiat, le programme est mal formé.
Exemple
Exécuter ce code
#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() {}
Voir aussi
(C++26) |
obtient une réflexion du résultat de la substitution des arguments réfléchis dans le modèle réfléchi (fonction modèle) |
(C++26) |
retourne une réflexion représentant une valeur ou un objet paramètre de modèle, appropriée pour être utilisée comme argument de modèle constant (fonction modèle) |
(C++26) |
retourne une réflexion représentant un objet, appropriée pour être utilisée comme argument de modèle constant (fonction modèle) |
(C++26) |
retourne une réflexion représentant une fonction, appropriée pour être utilisée comme argument de modèle constant (fonction modèle) |