Espaces de noms
Variantes
Actions

std::remove_cv, std::remove_const, std::remove_volatile

De cppreference.com
< cpp‎ | types

 
 
 
Soutien aux types fondamentaux
Les types de base
Original:
Basic types
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Types fondamentaux
Fixe les types entiers largeur (C++11)
Limites numériques
Original:
Numeric limits
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
numeric_limits
C numérique limite interface
Informations sur le type d'exécution
Original:
Runtime type information
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Caractères de type
Original:
Type traits
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Catégories de type primaire
Original:
Primary type categories
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
is_void (C++11)
is_array (C++11)
is_pointer (C++11)
is_enum (C++11)
is_union (C++11)
is_class (C++11)
is_function (C++11)
is_object (C++11)
is_scalar (C++11)
is_compound (C++11)
is_integral (C++11)
is_floating_point (C++11)
is_fundamental (C++11)
is_arithmetic (C++11)
is_reference (C++11)
is_lvalue_reference (C++11)
is_rvalue_reference (C++11)
is_member_pointer (C++11)
is_member_object_pointer (C++11)
is_member_function_pointer (C++11)
Les propriétés du type
Original:
Type properties
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
is_const (C++11)
is_volatile (C++11)
is_pod (C++11)
is_empty (C++11)
is_polymorphic (C++11)
is_abstract (C++11)
Opérations prises en charge
Original:
Supported operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
is_constructible
is_trivially_constructible
is_nothrow_constructible
(C++11)
(C++11)
(C++11)
is_default_constructible
is_trivially_default_constructible
is_nothrow_default_constructible
(C++11)
(C++11)
(C++11)
is_copy_constructible
is_trivially_copy_constructible
is_nothrow_copy_constructible
(C++11)
(C++11)
(C++11)
is_move_constructible
is_trivially_move_constructible
is_nothrow_move_constructible
(C++11)
(C++11)
(C++11)
is_assignable
is_trivially_assignable
is_nothrow_assignable
(C++11)
(C++11)
(C++11)
is_copy_assignable
is_trivially_copy_assignable
is_nothrow_copy_assignable
(C++11)
(C++11)
(C++11)
is_move_assignable
is_trivially_move_assignable
is_nothrow_move_assignable
(C++11)
(C++11)
(C++11)
is_destructible
is_trivially_destructible
is_nothrow_destructible
(C++11)
(C++11)
(C++11)
has_virtual_destructor (C++11)
Les relations et les requêtes de propriété
Original:
Relationships and property queries
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
is_same (C++11)
is_base_of (C++11)
is_convertible (C++11)
alignment_of (C++11)
rank (C++11)
extent (C++11)
Modifications de type
Original:
Type modifications
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
remove_cv
remove_const
remove_volatile
(C++11)
(C++11)
(C++11)
add_cv
add_const
add_volatile
(C++11)
(C++11)
(C++11)
make_signed (C++11)
make_unsigned (C++11)
Transformations de type
Original:
Type transformations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
aligned_storage (C++11)
aligned_union (C++11)
decay (C++11)
enable_if (C++11)
conditional (C++11)
common_type (C++11)
underlying_type (C++11)
result_of (C++11)
Tapez constantes traits
Original:
Type trait constants
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
integral_constant (C++11)
 
Déclaré dans l'en-tête <type_traits>
template<class T >
struct remove_cv;
(1) (depuis C++11)
template<class T >
struct remove_const;
(2) (depuis C++11)
template<class T >
struct remove_volatile;
(3) (depuis C++11)

Provides the member typedef type which is the same as T, except that its topmost cv-qualifiers are removed.

1) removes the topmost const, the topmost volatile, or both, if present.

2) removes the topmost const

3) removes the topmost volatile

Sommaire

[modifier]Types de membres

Nom
Original:
Name
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Definition
type the type T without cv-qualifier

[modifier]Mise en œuvre possible

template<class T >struct remove_cv {typedeftypename std::remove_volatile<typename std::remove_const<T>::type>::type type;};   template<class T >struct remove_const {typedef T type;};template<class T >struct remove_const<const T>{typedef T type;};   template<class T >struct remove_volatile {typedef T type;};template<class T >struct remove_volatile<volatile T>{typedef T type;};

[modifier]Exemple

Removing const/volatile from constvolatileint* does not modify the type, because the pointer itself is neither const nor volatile.

#include <iostream>#include <type_traits>   int main(){typedef std::remove_cv<constint>::type type1;typedef std::remove_cv<volatileint>::type type2;typedef std::remove_cv<constvolatileint>::type type3;typedef std::remove_cv<constvolatileint*>::type type4;typedef std::remove_cv<int*constvolatile>::type type5;   std::cout<<"test1 "<<(std::is_same<int, type1>::value?"passed":"failed")<<'\n';std::cout<<"test2 "<<(std::is_same<int, type2>::value?"passed":"failed")<<'\n';std::cout<<"test3 "<<(std::is_same<int, type3>::value?"passed":"failed")<<'\n';std::cout<<"test4 "<<(std::is_same<constvolatileint*, type4>::value?"passed":"failed")<<'\n';std::cout<<"test5 "<<(std::is_same<int*, type5>::value?"passed":"failed")<<'\n';}

Résultat :

test1 passed test2 passed test3 passed test4 passed test5 passed

[modifier]Voir aussi

(C++11)
vérifie si un type est const qualifié
Original:
checks if a type is const-qualified
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(classe générique)[edit]
(C++11)
vérifie si un type est volatile qualifié
Original:
checks if a type is volatile-qualified
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(classe générique)[edit]
close