gpt4 book ai didi

C++ 模板参数已经是 "known"

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:04:13 26 4
gpt4 key购买 nike

这个问题可能是一个很好回答的问题,但不幸的是我不知道正确的术语来正确地问它,所以......

template <class _Cp, bool _IsConst, typename _Cp::__storage_type = 0> class __bit_iterator;

有人可以在这里解释最后一个模板参数吗?我唯一可以推断的是,如果为 _Cp 指定的参数具有子类型 __storage_type,则模板中对 _Cp::__storage_type 的任何使用都将解析为该子类型。如果不是,那是否意味着 _Cp::__storage_type 解析为 0?这对我来说似乎真的很反常(或者经过一些实验后可能是错误的)。

解释连同正确的术语和 C++ 引用将被应用。

出于兴趣,这段代码是从 libc++ 中提取的。

最佳答案

类模板__bit_iterator接受三个参数:

  • _Cp
  • 一个 bool 值 _IsConst
  • _Cp::__storage_type 类型的对象(大概是一个整数),没有名称
    • 此参数是可选的,默认为表达式 0

第三个参数的目的(因为它是未命名的,因此不能在 __bit_iterator 的定义中使用)似乎只是要求类 _Cp 具有与表达式 0 兼容的成员类型 __storage_type。如果不是,则该实例化(使用 _Cp)无法编译。

关于C++ 模板参数已经是 "known",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29537560/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com