#include #include template struct RemoveConst{ typedef T type; }; template struct RemoveConst{ typedef T type; }; template void checkConst(){ if (std::is_const::value == true ) { std::cout << "const " << std::endl; } else { std::cout << "not const" << std::endl; } } int main(){ std::cout << "int : "; checkConst(); std::cout << "const int: "; checkConst(); std::cout << "RemoveConst::type > "; checkConst< RemoveConst::type >(); std::cout << "RemoveConst::type > : "; checkConst< RemoveConst::type >(); typedef RemoveConst::type NotConstFromConstInt; std::cout << "NotConstFromConstInt : "; checkConst< NotConstFromConstInt >(); NotConstFromConstInt i= 10; }