is_same Class
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

is_same Class

Tests if two types are the same.

template<class Ty1, class Ty2>
    struct is_same;

Ty1

The first type to query.

Ty2

The second type to query.

An instance of the type predicate holds true if the types Ty1 and Ty2 are the same type, otherwise it holds false.

 

// std_tr1__type_traits__is_same.cpp 
// compile with: /EHsc 
#include <type_traits> 
#include <iostream> 
 
struct base 
    { 
    int val; 
    }; 
 
struct derived 
    : public base 
    { 
    }; 
 
int main() 
    { 
    std::cout << "is_same<base, base> == " << std::boolalpha 
        << std::tr1::is_same<base, base>::value << std::endl; 
    std::cout << "is_same<base, derived> == " << std::boolalpha 
        << std::tr1::is_same<base, derived>::value << std::endl; 
    std::cout << "is_same<derived, base> == " << std::boolalpha 
        << std::tr1::is_same<derived, base>::value << std::endl; 
    std::cout << "is_same<int, int> == " << std::boolalpha 
        << std::tr1::is_same<int, int>::value << std::endl; 
    std::cout << "is_same<int, const int> == " << std::boolalpha 
        << std::tr1::is_same<int, const int>::value << std::endl; 
 
    return (0); 
    } 
 
is_same<base, base> == true is_same<base, derived> == false is_same<derived, base> == false is_same<int, int> == true is_same<int, const int> == false

Header: <type_traits>

Namespace: std::tr1

Show:
© 2016 Microsoft