次の方法で共有


add_pointer クラス

指定された型から型へのポインターを作成します。

構文

template <class T>
struct add_pointer;

template <class T>
using add_pointer_t = typename add_pointer<T>::type;

パラメーター

T
変更する型。

解説

メンバーtypedef typeremove_reference<T>::type*と同じ型に名前を付けます。 エイリアス add_pointer_t は、メンバー typedef typeにアクセスするためのショートカットです。

参照からポインターを作成することは無効であるため、add_pointer は型へのポインターを作成する前に、指定された型から参照を削除します (存在する場合)。 その結果、型が参照であるかどうかを気にすることなく、型を add_pointer で使用できます。

次の例では、型の add_pointer がその型へのポインターと同じであることを示します。

#include <type_traits>
#include <iostream>

int main()
{
    std::add_pointer_t<int> *p = (int **)0;

    p = p;  // to quiet "unused" warning
    std::cout << "add_pointer_t<int> == "
        << typeid(*p).name() << std::endl;

    return (0);
}
add_pointer_t<int> == int *

要件

ヘッダー: <type_traits>

名前空間: std

関連項目

<type_traits>
remove_pointer クラス