创建一个包含 c++ 默认值的环境文件
Create a env file containing default values in c++
我正在创建一个包含一些特定配置的c++
项目。可以根据场景校准这些配置。
由于我试图解决的问题是一个优化问题,而像BigM
和cycles
这样的配置是根据实例而有所不同的值,我相信配置文件将是一个不错的选择。
举个例子,我实际上把我的主文件的开头放了,如下所示:
#define NUM_STABILIZED 1e6 #define bigM 1e6
喜欢.env
,用于node
或php
项目。有一个默认模式,如.env
文件在c++
?
在更好的情况下,我相信如下所示的"喜欢".env
文件将有助于使用不同的方法运行大量测试:
大米 1e6 NUM_STABILIZED 1E6
只是为了便于运行测试,而无需每次都使用这些(实际(常量中的不同值重新编译代码。
解决此问题的常用方法是将值作为命令行参数传递:
./myapp --NUM_STABILIZED 1000000 --bigM 1000000
此方法要求您分析命令行。您可以为此使用库,例如 cxxopts。如果没有命令行参数,则可以使用默认值。
您也可以通过环境变量传递值。使用 getenv 阅读它们。
如果您希望在项目中支持 .env 文件,则可以实现自己的解析器或使用库,例如 cpp-dotenv。
没有这样的事情,但是有很多选择,一些我习惯的常见选择。
-
将变量作为程序参数传递。
-
从环境中读取所需的变量。您实际上可以创建一个包装脚本,该脚本可以设置环境变量并调用程序。
-
将包含所有需要的参数的配置文件作为程序选项传递。
-
从预定义的环境变量中读取配置文件。
通常的方法是将这些值组合在一起,例如,您从配置文件中读取所有默认值(使用上面的选项 3 或 4(,并且对于每个键,如果它们被提供(选项 1 或 2(
来自提升的Property_tree和来自提升的程序选项可根据您的需求提供跨平台支持。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 具有默认值的引用获取函数
- 当给定默认值时,为什么此模板参数推导失败
- 从具有默认值的部分指定模板类继承时发生SWIG错误,具有不带默认值的正向声明
- 格式化浮点值:返回默认值
- 如何将数组部分初始化为某个默认值?
- asn1c 不会从 asn.1 模块中提取八位字节字符串的默认值
- 创建一个包含 c++ 默认值的环境文件
- C++(和 ROS) - 包含与前向声明引用,设置默认值和类型定义
- Makefile g++ 使用命令行中的 -D 变量进行编译,默认值
- Switch 语句(字符串)一直选择默认值,除非其为零
- 如何使用默认值将枚举声明为 extern
- 如何在提升程序选项中设置矢量<矢量>的默认值<string>
- 如何使用默认值为构造函数中的枚举赋值?
- 变量始终在函数中重置为默认值
- 如何在C++中提供模板化函数作为另一个函数的参数,默认值?
- 函数不返回默认值
- 具有公共范围与专用范围的默认值的C++的不同行为
- 在 c++ 中,如果我创建一个接受一个具有默认值的参数的构造函数 - 它会用作默认(空)构造函数吗?
- 实例化时结构字段中的默认值