C++ 为什么 Traits 在对象上不可用,而是作为静态成员变量可用

程序员

我对类 Traits 的理解是,它是一个类,它封装了模板类和模板函数所必需的一组类型和函数,以操作它们被实例化的类型的对象。

在下面的示例中,为什么我们不能使用 'gquiz::container_type' 声明,否则我们如何知道 gquiz 的特征:

int main()
{
    queue <int> gquiz;
    const queue <int>::container_type dq;
    //why not gquiz::container_type ?????
    cout << typeid(dq).name() << endl;
    gquiz.push(10);
    gquiz.push(queue <int>::value_type(20));
    gquiz.push(30);
}
6502

您可以使用

decltype(gquiz)::container_type

事实上,x::y必须等同于decltype(x)::ywhenx不是一种类型似乎更简单,我也(我敢打赌其他人)也考虑过这一点。但是它不在标准中,原因是......因为它不在标准中,所以不起作用。

并非 C++ 中的每一个决定都有逻辑依据,可能这个特定的决定有一个逻辑原因,但我想不出来。

可能只是没有理由。

随着 C++ 发生。很多。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么以及何时malloc()在C中不可用?

来自分类Dev

为什么变量不可用?

来自分类Dev

c++ type_traits:为什么我不能从另一个模板/ enable_if 行调用模板化静态方法?

来自分类Dev

为什么`this`在C#6.0自动属性初始化中不可用?

来自分类Dev

C ++ 11已实现的接口的方法不可用。为什么?

来自分类Dev

为什么在此示例中变量范围不可用

来自分类Dev

为什么在 if 条件下外部变量不可用

来自分类Dev

为什么变量值在循环外不可用

来自分类Dev

为什么原型在简单的JavaScript对象中不可用

来自分类Dev

为什么getElementById()在Elements上不可用?

来自分类Dev

为什么线程2不可用?

来自分类Dev

ORA-01034:ORACLE 不可用,为什么在 Linux 上为 Oracle Database 18c XE 配置数据库

来自分类Dev

为什么我的模型上的静态方法在Google Cloud Endpoints客户端库中不可用?

来自分类Dev

为什么非静态类的静态属性在剃刀视图 MVC 中不可用

来自分类Dev

为什么在C ++类的成员变量上使用前缀

来自分类Dev

C ++成员变量类Q_PROPERTY在QML中不可用

来自分类Dev

C ++为什么变量是函数而不是对象?

来自分类Dev

为什么一半的逻辑分区不可用?

来自分类Dev

为什么 Groovy 的日期扩展在 Micronaut 中不可用?

来自分类Dev

为什么隐式类中的函数不可用?

来自分类Python

为什么是Python 3.6.1。pyenv中不可用?

来自分类Dev

为什么SQLiteDatabase.addCustomFunction不可用?

来自分类Dev

为什么 SparkSession 在 Spark2.3 中不可用

来自分类Dev

为什么别名在 /etc/profile 中不可用?

来自分类Dev

为什么NPM在Docker容器中不可用

来自分类Dev

安装postgresql。为什么initdb不可用?

来自分类Dev

为什么Android支持库版本22不可用?

来自分类Dev

为什么我的 SendGrid 函数返回“服务不可用”?

来自分类Dev

为什么无符号整数在PostgreSQL中不可用?

Related 相关文章

  1. 1

    为什么以及何时malloc()在C中不可用?

  2. 2

    为什么变量不可用?

  3. 3

    c++ type_traits:为什么我不能从另一个模板/ enable_if 行调用模板化静态方法?

  4. 4

    为什么`this`在C#6.0自动属性初始化中不可用?

  5. 5

    C ++ 11已实现的接口的方法不可用。为什么?

  6. 6

    为什么在此示例中变量范围不可用

  7. 7

    为什么在 if 条件下外部变量不可用

  8. 8

    为什么变量值在循环外不可用

  9. 9

    为什么原型在简单的JavaScript对象中不可用

  10. 10

    为什么getElementById()在Elements上不可用?

  11. 11

    为什么线程2不可用?

  12. 12

    ORA-01034:ORACLE 不可用,为什么在 Linux 上为 Oracle Database 18c XE 配置数据库

  13. 13

    为什么我的模型上的静态方法在Google Cloud Endpoints客户端库中不可用?

  14. 14

    为什么非静态类的静态属性在剃刀视图 MVC 中不可用

  15. 15

    为什么在C ++类的成员变量上使用前缀

  16. 16

    C ++成员变量类Q_PROPERTY在QML中不可用

  17. 17

    C ++为什么变量是函数而不是对象?

  18. 18

    为什么一半的逻辑分区不可用?

  19. 19

    为什么 Groovy 的日期扩展在 Micronaut 中不可用?

  20. 20

    为什么隐式类中的函数不可用?

  21. 21

    为什么是Python 3.6.1。pyenv中不可用?

  22. 22

    为什么SQLiteDatabase.addCustomFunction不可用?

  23. 23

    为什么 SparkSession 在 Spark2.3 中不可用

  24. 24

    为什么别名在 /etc/profile 中不可用?

  25. 25

    为什么NPM在Docker容器中不可用

  26. 26

    安装postgresql。为什么initdb不可用?

  27. 27

    为什么Android支持库版本22不可用?

  28. 28

    为什么我的 SendGrid 函数返回“服务不可用”?

  29. 29

    为什么无符号整数在PostgreSQL中不可用?

热门标签

归档