/opt/projects/FistQT/my_sift.h:26: error: ‘constexpr’ needed for in-class initialization of static data member ‘MySIFT* MySIFT::instance’ of non-integral type [-fpermissive]
时间: 2024-03-23 14:38:32 浏览: 75
解决-BASH: /HOME/JAVA/JDK1.8.0_221/BIN/JAVA: 权限不够问题
这是一个编译错误,它表示 MySIFT 类的静态成员变量 `instance` 的初始化不符合 C++11 标准。在 C++11 标准中,非整数类型的静态成员变量必须使用 `constexpr` 进行初始化。
为了修复这个错误,你可以将 `MySIFT::instance` 的初始化代码移动到类定义外部,并添加 `constexpr` 修饰符。例如:
```cpp
class MySIFT {
public:
static constexpr MySIFT* instance = nullptr;
// ...
};
// 在类定义外部进行初始化
constexpr MySIFT* MySIFT::instance = nullptr;
```
这样就可以正确地初始化静态成员变量了。
阅读全文