Unable to compile C++ program on a macosx: error: unknown type name 'constexpr'
Unable to compile C++ program on a macosx: error: unknown type name 'constexpr'
我正在尝试编译以下程序。但是它给了我 error: unknown type name 'constexpr'
错误。我该怎么办?
代码:
//this is model.cpp. battery.cpp and load.cpp are two secondary files
#include "load.h"
#include "battery.h"
//compile time constants - Settings
constexpr int intervals = 96;
constexpr float e_min = 0.001;
constexpr int max_iters = 100;
constexpr int nloads = 10;
constexpr int nbat = 10;
struct devices
{
load loadDevices[nloads];
battery batteryDevices[nbat];
};
int main()
{
//Initialization of the model
devices devices1;
return 0;
}
我在使用 constexpr 的每一行都遇到相同的错误。
error: unknown type name 'constexpr'
constexpr int intervals = 96;
我的C/C++配置.json文件如下:
{
"configurations": [
{
"name": "Mac",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"macFrameworkPath": [],
"compilerPath": "/usr/local/bin/gcc-11",
"cStandard": "gnu17",
"cppStandard": "gnu++17",
"intelliSenseMode": "macos-gcc-x64"
}
],
"version": 4
}
系统:MACOSX
IDE: VSCode
使用 g++
在 Mac 的终端上编译
编译命令:g++ model.cpp battery.cpp load.cpp
如果您直接从命令行调用编译器,则不会使用 json 配置。在这种情况下,您必须自己指定每个选项:
g++ -std=gnu++17 -Wall -Werror model.cpp battery.cpp load.cpp
我只是添加了 -Wall -Werror
以备不时之需,没有它们你永远不应该编译你的代码。
如果没有 -std
选项,编译器将使用没有 constexpr
.
的旧版本的 C++ 标准
我正在尝试编译以下程序。但是它给了我 error: unknown type name 'constexpr'
错误。我该怎么办?
代码:
//this is model.cpp. battery.cpp and load.cpp are two secondary files
#include "load.h"
#include "battery.h"
//compile time constants - Settings
constexpr int intervals = 96;
constexpr float e_min = 0.001;
constexpr int max_iters = 100;
constexpr int nloads = 10;
constexpr int nbat = 10;
struct devices
{
load loadDevices[nloads];
battery batteryDevices[nbat];
};
int main()
{
//Initialization of the model
devices devices1;
return 0;
}
我在使用 constexpr 的每一行都遇到相同的错误。
error: unknown type name 'constexpr'
constexpr int intervals = 96;
我的C/C++配置.json文件如下:
{
"configurations": [
{
"name": "Mac",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"macFrameworkPath": [],
"compilerPath": "/usr/local/bin/gcc-11",
"cStandard": "gnu17",
"cppStandard": "gnu++17",
"intelliSenseMode": "macos-gcc-x64"
}
],
"version": 4
}
系统:MACOSX
IDE: VSCode
使用 g++
在 Mac 的终端上编译编译命令:g++ model.cpp battery.cpp load.cpp
如果您直接从命令行调用编译器,则不会使用 json 配置。在这种情况下,您必须自己指定每个选项:
g++ -std=gnu++17 -Wall -Werror model.cpp battery.cpp load.cpp
我只是添加了 -Wall -Werror
以备不时之需,没有它们你永远不应该编译你的代码。
如果没有 -std
选项,编译器将使用没有 constexpr
.