gpt4 book ai didi

c++ - 类模板参数默认值

转载 作者:行者123 更新时间:2023-12-04 08:24:06 26 4
gpt4 key购买 nike

time_point 有一个类模板定义来自标准 C++ 库的模板类:

template<
class Clock,
class Duration = typename Clock::duration
> class time_point;
有人可以向我解释一下这条线:
class Duration = typename Clock::duration
?
我知道我们正在为第二个模板参数定义默认值 Duration但我不明白的是 ::duration之后的部分 Clock类型名称。不应该只是:
class Duration = typename Clock
?

最佳答案

这将使用 Clock 的类型:

class Duration = typename Clock
然而, Duration是与 Clock 不同的类型.有一个 named requirement Clock .除其他事项外,它指定时钟应具有 duration成员别名。
成员别名是这样的:
 struct my_clock {
using duration = int;
};
所以当你实例化一个 time_point<my_clock> ,第二个模板参数变为 my_clock::duration .关键词 typename是必需的,因为它是一个从属名称。您需要向编译器保证 Clock::duration真的是一种。

关于c++ - 类模板参数默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65355666/

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