Saturday, October 15, 2016

type traits compile time if in typedef


#include "stdafx.h"
#include <iostream>
#include <type_traits>
#include <typeinfo>

using namespace std;

template<bool cond, typename T, typename ElseT>
struct conditional2 {
 using type = T;
};

template<typename T, typename ElseT>
struct conditional2<false, T, ElseT>
{
 using type = ElseT;
};


int main() {

 typedef conditional2<true, int, char>::type T1;
 typedef conditional2<1 == 2, int, char>::type T2;
 cout << typeid(T1).name() << " " << typeid(T2).name() << endl;
 return 0;
}



No comments:

Post a Comment