Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Membuat const volatile
jenis dari jenis.
Sintaks
template <class T>
struct add_cv;
template <class T>
using add_cv_t = typename add_cv<T>::type;
Parameter
T
Jenis yang akan dimodifikasi.
Keterangan
Instans jenis add_cv<T>
yang dimodifikasi memiliki anggota typedef
yang type
setara dengan T yang dimodifikasi oleh add_volatile dan add_const, kecuali T sudah memiliki kualifikasi cv, adalah referensi, atau merupakan fungsi.
Jenis add_cv_t<T>
pembantu adalah pintasan untuk mengakses add_cv<T>
typedef type
anggota .
Contoh
// add_cv.cpp
// compile by using: cl /EHsc /W4 add_cv.cpp
#include <type_traits>
#include <iostream>
struct S {
void f() {
std::cout << "invoked non-cv-qualified S.f()" << std::endl;
}
void f() const {
std::cout << "invoked const S.f()" << std::endl;
}
void f() volatile {
std::cout << "invoked volatile S.f()" << std::endl;
}
void f() const volatile {
std::cout << "invoked const volatile S.f()" << std::endl;
}
};
template <class T>
void invoke() {
T t;
((T *)&t)->f();
}
int main()
{
invoke<S>();
invoke<std::add_const<S>::type>();
invoke<std::add_volatile<S>::type>();
invoke<std::add_cv<S>::type>();
}
invoked non-cv-qualified S.f()
invoked const S.f()
invoked volatile S.f()
invoked const volatile S.f()
Persyaratan
Header:<type_traits>
Namespace: std