« remove_const_t, alias, C++ »
remove_const_t - Szablon aliasu, który z danego typu zwraca tym bez przydomka const (alias)
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!
Hasło nie zostało zweryfikowane
Niniejsze hasło zostało opracowane, jednak nie zostało ono zweryfikowane przez administrację serwisu. Jeżeli znalazłeś błędy merytoryczne w niniejszym dokumencie, prosimy o ich zgłoszenie na forum w dziale Znalezione błędy.
Opracował: baziorek
« Standard C++14 »

remove_const_t

[alias] Szablon aliasu, który z danego typu zwraca tym bez przydomka const

Składnia

C/C++
#include<type_traits>
namespace std
{
    template < typename T >
    struct remove_const;
   
    template < typename T >
    using remove_const_t = typename remove_const < T >::type;
}

Parametry szablonu

ParametrOpis
Tjest to typ z którego chcemy otrzymać typ bez przydomka const

Opis szczegółowy

Jest to szablon aliasu, który z danego typu, będącego parametrem szablonu aliasu, zwraca typy niestały (bez przydomka
const
). Działa zarówno dla typów bez, jak i z przydomkiem
const
.

Dodatkowe informacje

Usuwanie
const
 z typu odbywa się w trakcie kompilacji.

Rzucane wyjątki

Wszystko odbywa się w trakcie kompilacji, dlatego nie ma tutaj żadnych wyjątków.

Wymagania

Kompilator zgodny z C++14, lub posiadający implementację
std::remove_reference_t <>

Implementacja

C/C++
namespace std
{
    template < typename T >
    struct remove_const
    {
        typedef T type;
    };
    template < typename T >
    struct remove_const < const T >
    {
        typedef T type;
    };
   
    template < typename T >
    using remove_const_t = typename remove_const < T >::type;
}

Przykład

C/C++
#include<iostream>
#include<vector>
#include<iterator>
#include<type_traits>
using namespace std;

int main()
{
    const vector < int > v1 = { 1772, 1793, 1795 };
    remove_const_t < decltype( v1 ) > v2;
    v2.push_back( 1939 );
    copy( begin( v2 ), end( v2 ), ostream_iterator < int >( cout, "\n" ) );
}
Standardowe wyjście programu:
1939

Zagadnienia powiązane

remove_reference_tSzablon aliasu pozyskujący z typu T typ, który nie jest referencją do l-wartości, ani referencją do r-wartości (alias)