【发布时间】:2014-07-08 03:01:40
【问题描述】:
或者可以是单独的无符号整数类型吗?
我对不同(无符号)整数类型的模板函数有不同的特化。我是否需要为size_t 提供单独的专业化?
【问题讨论】:
-
你说的是“模板函数”,所以我把不相关的
c标签去掉了。 -
cplusplus.com/reference/cstring/size_t 好像是别名,虽然我没有标准。如果这是正确的stackoverflow.com/a/1089181/3093378,那么它始终是
unsigned类型,但不确定它是否始终是别名。 -
我看了那个帖子。它并没有说
size_t被定义为别名。那么它可以是,例如 64 位无符号,并且行为与unsigned long完全相同,但未定义为typedef unsigned long size_t并且是独立类型吗?还是它总是一个别名? -
在我的平台(OS X Mavericks,g++4.9)上,如果我提供两种不同的模板特化,一种用于
unsigned long,一种用于size_t,我会得到redefinition error,所以size_t是unsigned long的别名。尽管在标准中找不到任何地方确实是这种情况。好问题。 -
@vsoftco 我在 linux 上也一样,所以我不专攻
size_t。我想知道,如果它始终是可移植的或在某个平台上,它不是typedef,就会有问题