给出以下代码:
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/