Jam*_*mes 1 c++ gcc compiler-errors
我有一个带有一些内联模板方法的头文件.我向它添加了一个类声明(只是几个静态方法......它更像是一个命名空间而不是一个类),我开始在使用该新类的文件中得到这个编译错误.
还有其他几个文件包含相同的.h文件,仍可以编译而无需投诉.
谷歌搜索错误给了我一堆链接到邮件列表有关具有类似错误消息的项目上的错误(唯一的区别似乎是构造函数,析构函数或类型转换应该在前面).
我准备开始剥离其他所有东西,直到我有一个简单的最小样本,所以我可以聪明地问这个问题,但我想我会先尝试一下这个愚蠢的方法:
任何人都可以给我一个关于这个错误信息实际意味着什么的基本线索,所以我可以开始跟踪它/ google它?
仅仅为了完整起见,我看到这个的第一个例子看起来或多或少
namespace Utilities
{
template <typename T> GLfloat inline NormalizeHorizontally(T x)
{
GLfloat scaledUp = x*2.0;
GLfloat result = scaledUp / Global::Geometry::ExpectedResolutionX;
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
这意味着您将"inline"关键字放在错误的位置.它需要在方法的返回类型之前,例如
template <typename T> inline GLfloat NormalizeHorizontally(T x)
Run Code Online (Sandbox Code Playgroud)
就那么简单.
您在一个编译单元而不是其他编译单元上获得此消息的原因可能是因为它是一个模板化函数,未从其他编译单元实例化.
通常,如果你得到"foobar之前的预期等等"错误,这是一个解析错误,它通常表示一个简单的语法错误,例如缺少分号,缺少大括号或错误的关键字.问题通常在提到的部分附近,但实际上可能是一段时间,所以有时你必须寻找它.
| 归档时间: |
|
| 查看次数: |
5309 次 |
| 最近记录: |