如何在C ++中获取变量的类型

我想创建一个函数来使用指针显示变量的值,但是我试图只创建一个函数来显示任何类型的值。我必须使用模板,但是在显示字符串或字符时遇到一些问题。只是为了解决它,我需要一个getType()函数(就像Java中一样)

     #include <iostream>
     using namespace std;

     template <typename T> 
     void displayByPtr(T *ptr){


           if( // If ptr's data type is char // ){
    
               T *holder = ptr;
               cout << "\nDisplayed char/string by pointer: ";
               while((*holder) != '\0'){
                   cout << (*holder);
                   holder++;
           }
           cout << "\n";
           } else {
             cout << "\nDisplayed value by pointer :" << (*ptr) << "\n"; 
           }

     }



    int main(){


         char decision = 'Y';   
         while(decision == 'Y'){
              cout << "Enter a type \n Press 1 for integer,\n Press 2 for double, \n";
              cout << " Press 3 for float, \n Press 4 for character/string, \n --> ";
              int type = 0;
              cin >> type;
              switch(type){
                   
                             .
                             .
                             .
                  case 4:
                       char inputCh[100];
                       char *ptr4;
                       cout << "Enter char value: ";
                       cin >> inputCh;
                       ptr4 = inputCh;
                       displayByPtr<char>(ptr4);
                       cout << "\n Would you like to continue ? ";
                       cin >> decision;
                       break;

我实际上只是在“ if(//如果ptr的数据类型是char //)”中用typeid(variable).name()尝试了一次,但没有成功。我正在尝试对该函数的语法进行一些研究,但我想听听是否还有另一种方法。