下面的代码是 Ubuntu 标准包中提供的类初始化器列表。在这个迭代器和 const_iterator 是相同类型的 typedef。我只是想知道为什么我们要为不同类型的 Iterator 使用相同的 typedef ?理想情况下,Iterator 应该有 typedef _E* 迭代器。
// In the class initializer list:
namespace std
{
/// initializer_list
template<class _E>
class initializer_list
{
public:
typedef _E value_type;
typedef const _E& reference;
typedef const _E& const_reference;
typedef size_t size_type;
typedef const _E* iterator;
typedef const _E* const_iterator;
PS:我想不出合适的标题,所以我给了这个标题