给出以下代码:

template<typename T>
class MyContainer
{
    typedef T value_type;
    typedef unsigned int size_type;

    ...
};


应该如何使用size_type初始化变量(如循环索引)?
应该是:

for(size_type currentIndex = size_type(0);currentIndex < bound;++currentIndex)


要么

for(size_type currentIndex = static_cast<size_type>(0);currentIndex < bound;++currentIndex)


该问题的基本原理是生成代码,当基础size_type类型更改或添加到模板参数时,该代码仍然可以使用。

谢谢...

最佳答案

我看到四种可能性:

size_type();
size_type(0);
static_cast<size_type>(0);
0;


我希望最后一个。简洁明了,与其他功能一样。

您可能担心,如果更改类型将无法正常工作,或者发生其他情况。事实是,按照惯例,size_type是无符号整数。只要size_type是明智且正确的尺寸测量类型,则0始终将是有效值。

关于c++ - 模板初始化中的C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2314008/

10-08 21:30