gpt4 book ai didi

c++ - 当我们定义模板时总是定义 `value_type` 是一个好习惯吗

转载 作者:IT老高 更新时间:2023-10-28 12:31:20 26 4
gpt4 key购买 nike

template<typename T>
class Point
{
public:
typedef T value_type;
...
};

上面的代码我在书"C++ in a Nutshell" by Ray Lischner, pp176看过.

问题:

  1. 总是添加value_type 的定义是一种好习惯吗? ?
  2. 这将在哪里定义value_type可以用吗?

例如:Point<int>::value_type ?

最佳答案

拥有它并没有什么坏处,但它主要只对容器有意义(如 std::vector ),因为所有容器都提供此 typedef和一个用于访问所包含值的统一接口(interface)( begin/endfront/back ),尽管这在 C++11 中大部分已经过时了 autodecltype .还是比较干净的说some_template<typename container::value_type> ... ,不过。

这反过来意味着它们可以在通用代码中互换使用(这样做的主要原因)。如果这对您的 Point 有意义类知道包含的值是什么类型,嗯,有 typedef .正如我所说,它不疼。但是,我觉得对于那个特定的例子来说没有太大意义。

关于c++ - 当我们定义模板时总是定义 `value_type` 是一个好习惯吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9637094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com