Open In App

std::is_literal_type in C++ with Examples

Improve
Improve
Like Article
Like
Save
Share
Report

The std::is_literal_type template of C++ STL is present in the <type_traits> header file. The std::is_literal_type template of C++ STL is used to check whether the T is literal type or not. It return the boolean value true if T is literal type, otherwise return false.

Header File:

#include<type_traits>

Template:

template< class T >
struct is_literal_type;

Syntax:

std::is_literal_type::value

Parameter: The template std::is_literal_type accepts a single parameter T(Trait class) to check whether T is literal type or not.

Return Value: The template std::is_literal_type returns a boolean variable as shown below:

  • True: If the type T is a literal type.
  • False: If the type T is not a literal type.

Below is the program to demonstrate std::is_literal_type: in C/C++:

Program:




// C++ program to illustrate
// std::is_literal_type
#include <bits/stdc++.h>
#include <type_traits>
using namespace std;
  
// Declare Classes
class X {
};
  
class Y {
  
    // Destructor
    ~Y() {}
};
  
// Declare structures
struct A {
    int m;
};
  
struct B {
    virtual ~B();
};
  
// Driver Code
int main()
{
  
    cout << boolalpha;
  
    // Check if int is literal type?
    cout << "int: "
         << is_literal_type<int>::value
         << endl;
  
    // Check if class X is literal type?
    cout << "class X: "
         << is_literal_type<X>::value
         << endl;
  
    // Check if class Y is literal type?
    cout << "class Y: "
         << is_literal_type<Y>::value
         << endl;
  
    // Check if int* is literal type?
    cout << "int*: "
         << is_literal_type<int*>::value
         << endl;
  
    // Check if struct A is literal type?
    cout << "struct A: "
         << is_literal_type<A>::value
         << endl;
  
    // Check if struct B is literal type?
    cout << "struct B: "
         << is_literal_type<B>::value
         << endl;
  
    return 0;
}


Output:

int: true
class X: true
class Y: false
int*: true
struct A: true
struct B: false

Reference: http://www.cplusplus.com/reference/type_traits/is_literal_type/



Last Updated : 12 Jun, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads