gpt4 book ai didi

c++ - (C++ 和 gcc) 错误 : expected constructor, 析构函数,或 'inline' 之前的类型转换

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:08 24 4
gpt4 key购买 nike

我有一个包含一些内联模板方法的头文件。我向它添加了一个类声明(只是几个静态方法……它更像是一个命名空间而不是一个类),然后我开始在使用该新类的文件中遇到此编译错误。

还有其他几个包含相同 .h 文件的文件仍然可以毫无怨言地编译。

通过谷歌搜索错误,我得到了一堆指向邮件列表的链接,这些邮件列表涉及具有类似错误消息的项目中的错误(唯一的区别似乎是构造函数、析构函数或类型转换应该在什么之前)。

我准备开始剥离其他所有内容,直到我有一个基本的最小样本,这样我就可以聪明地问这个问题,但我想我会先尝试用愚蠢的方式问它:

任何人都可以给我一个关于此错误消息的实际含义的基本线索,以便我可以开始追踪/谷歌它吗?

为了完整起见,我看到的第一个例子看起来或多或少像

namespace Utilities
{
template <typename T> GLfloat inline NormalizeHorizontally(T x)
{
GLfloat scaledUp = x*2.0;
GLfloat result = scaledUp / Global::Geometry::ExpectedResolutionX;
return result;
}
}

最佳答案

这意味着您将“inline”关键字放在了错误的位置。它需要在方法的返回类型之前,例如

 template <typename T> inline GLfloat  NormalizeHorizontally(T x)

就这么简单。

您在一个编译单元而不是其他编译单元上收到此消息的原因可能是因为它是一个未从其他编译单元实例化的模板函数。

通常,如果您收到“expected blah blah before foobar”错误,这是一个解析错误,它通常表示一个简单的语法错误,例如缺少分号、缺少大括号或关键字顺序错误。问题通常出现在所提到的部分附近,但实际上可能是很久以前的事了,所以有时您必须寻找它。

关于c++ - (C++ 和 gcc) 错误 : expected constructor, 析构函数,或 'inline' 之前的类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1227842/

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