(C++ : Template) 런타임 데이터 type출력

Posted by : at

Category : Cpp


#include <iostream>
using namespace std;

template<typename T> void foo(const T a)
{
  cout << typeid(a).name() << endl;
  cout << typeid(T).name() << endl;
  // 타입을 출력해 준다. 단, const, volatile, reference는 조사가 불가능
  // boost를 사용해야 한다.
}

int main()
{
  foo<int>(3);
  
  foo(3);     // T : int, a : const int
  foo(3.3);   // T: double, a : const double
}
#include <iostream>
#include <boost\type_index.hpp>
using namespace std;
using namespace boost::typeindex;

template<typename T> void foo(const T a)
{
  cout << type_id_with_cvr<T>().pretty_name() << endl;
  cout << type_id_with_cvr<decltype(a)>().pretty_name() << endl;
  // const, volatile, reference까지 출력이 가능.
}

int main()
{
  foo(3);     // T : int, a : const int
  foo(3.3);   // T: double, a : const double
}

About Taehyung Kim

안녕하세요? 8년차 현업 C++ 개발자 김태형이라고 합니다. 😁 C/C++을 사랑하며 다양한 사람과의 협업을 즐깁니다. ☕ 꾸준한 자기개발을 미덕이라 생각하며 노력중이며, 제가 얻은 지식을 홈페이지에 정리 중입니다. 좀 더 상세한 제 이력서 혹은 Private 프로젝트 접근 권한을 원하신다면 메일주세요. 😎

Star
Useful Links