我已经实现了一个算法,该算法有一个强大的用例,可以尽快知道在整个库执行期间将计算的最大问题大小,以便可以有效地预先计算所需的内存(矩阵、向量等) -分配。“尽快”定义为甚至早于或不晚于 C++ 静态初始化触发时,例如
/**
* Example of what I would like to accomplish but of course this
* System#getProperty is the Java way
*/
class texample {
static const int MAX_M_N;
}
const int texample::MAX_M_N = System.getProperty("maxMN"); // possible? how?
我当然可以使用动态初始化和分配来做到这一点,但如果在静态初始化期间“看到”这些输入参数属性,它会简单得多。原因是静态初始化/分配的包装对象实例也会被静态销毁过程破坏,我不必担心它,例如处理异常和手动释放/删除实例。
更新:还有一件事:) 我想拥有这个而不必重新编译。我当然可以使用宏(我正在使用 CMake),因此很容易更改 CMakeList.txt 文件中的宏并重新编译,但我希望在运行时动态指定大小。