C++中的std::is_literal_type及示例

C++中的std::is_literal_type及示例

C++ STL中的 std::is_literal_type 模板位于 < type_traits>头文件中。C++ STL中的 std::is_literal_type 模板用于检查 T 是否为字面类型。如果 T 是字面类型,它返回布尔值true,否则返回false。

头文件:

include < type_traits>

模板:

template <class T>
struct is_literal_type;

语法:

std::is_literal_type::value

参数: 模板 std::is_literal_type 接受一个参数 T(Trait class) ,用于检查 T 是否为字面类型。

返回值: 模板 std::is_literal_type 返回布尔变量,如下所示:

  • True: 如果类型T是字面类型。
  • False: 如果类型T不是字面类型。

下面是在C/C++中展示 std::is_literal_type: 的示例程序:

程序:

//C++ 中用std::is_literal_type演示的程序
#include
#include
using namespace std;

//声明类 
class X {
};

class Y {
    //析构函数
    ~Y() {}
};

//声明结构
struct A {
    int m;
};

struct B {
    virtual ~B();
};

int main()
{

    cout << boolalpha;

    //检查int是否为字面类型? 
    cout << "int: "
        << is_literal_type::value
        << endl;

    //检查类X是否为字面类型? 
    cout << "class X: "
        << is_literal_type::value
        << endl;

    //检查类Y是否为字面类型? 
    cout << "class Y: "
        << is_literal_type::value
        << endl;

    //检查int*是否为字面类型? 
    cout << "int*: "
        << is_literal_type::value
        << endl;

    //检查结构A是否为字面类型? 
    cout << "struct A: "
        << is_literal_type::value
        << endl;

    //检查结构B是否为字面类型? 
    cout << "struct B: "
        << is_literal_type **::value << endl;

    return 0;
}
int: true
class X: true
class Y: false
int*: true
struct A: true
struct B: false

参考资料:

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程