fork download
  1. #include <iostream>
  2. #include <memory>
  3. #include <typeinfo>
  4.  
  5. using namespace std;
  6.  
  7. // For demo only
  8. #include <cxxabi.h>
  9.  
  10. int main()
  11. {
  12. auto ptr1 = make_unique<char>(12);
  13. auto ptr2 = make_unique<char[]>(12);
  14.  
  15. std::size_t len = 0 ;
  16. int status = 0 ;
  17.  
  18. auto type_name1 = typeid(ptr1).name();
  19. auto type_name2 = typeid(ptr2).name();
  20.  
  21. cout << "ptr1 type is "
  22. << type_name1
  23. << ", aka: "
  24. << __cxxabiv1::__cxa_demangle(type_name1, nullptr, &len, &status)
  25. << endl;
  26.  
  27. cout << "ptr2 type is "
  28. << type_name2
  29. << ", aka: "
  30. << __cxxabiv1::__cxa_demangle(type_name2, nullptr, &len, &status)
  31. << endl;
  32.  
  33. return 0;
  34. }
  35.  
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
ptr1 type is St10unique_ptrIcSt14default_deleteIcEE, aka: std::unique_ptr<char, std::default_delete<char> >
ptr2 type is St10unique_ptrIA_cSt14default_deleteIS0_EE, aka: std::unique_ptr<char [], std::default_delete<char []> >