gpt4 book ai didi

c++ - 正式来说,typename 是干什么用的?

转载 作者:IT老高 更新时间:2023-10-28 11:52:08 25 4
gpt4 key购买 nike

有时我在使用模板时看到 gcc 吐出一些非常难以理解的错误消息...具体来说,我遇到了一些问题,看似正确的声明会导致非常奇怪的编译错误通过在声明的开头添加 typename 关键字前缀就消失了......(例如,就在上周,我将两个迭代器声明为另一个模板类的成员,我必须这样做)。 ..

typename 上有什么故事?

最佳答案

以下是 Josuttis 书中的引述:

The keyword typename was introduced to specify that the identifier that follows is a type. Consider the following example:

template <class T>
Class MyClass
{
typename T::SubType * ptr;
...
};

Here, typename is used to clarify that SubType is a type of class T. Thus, ptr is a pointer to the type T::SubType. Without typename, SubType would be considered a static member. Thus

T::SubType * ptr

would be a multiplication of value SubType of type T with ptr.

关于c++ - 正式来说,typename 是干什么用的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1600936/

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