这个问题可能是一个很好的答案,但不幸的是我不知道正确的术语,所以......
template <class _Cp, bool _IsConst, typename _Cp::__storage_type = 0> class __bit_iterator;
Run Code Online (Sandbox Code Playgroud)
有人可以解释最后一个模板参数吗?我唯一可以推断的是,如果为_Cp指定的参数具有子类型__storage_type,那么模板中任何_Cp :: __ storage_type的使用都将解析为该.如果没有那么意味着_Cp :: __ storage_type解析为0?这对我来说似乎很不合适(或者经过一些实验后可能会出错).
将使用解释以及正确的术语和C++参考.
有兴趣的话,这段代码是从libc ++中提取的.
类模板__bit_iterator有三个参数:
_Cp_IsConst_Cp::__storage_type没有名字的类型的对象(可能是一个整数)
0第三个参数的目的(因为它未命名,因此不能在定义中使用__bit_iterator)似乎只是要求类_Cp具有__storage_type与表达式兼容的成员类型0.如果没有,那个实例化(带有_Cp),就无法编译.