【发布时间】:2014-11-18 07:25:07
【问题描述】:
我有一个看起来像
的 sn-pstd::string z_A_file("z_A.txt");
z_A_file = inputs_folder + z_A_file.c_str();
Eigen::Matrix<PRECISION, Eigen::Dynamic, Eigen::Dynamic> z_A_ = readArbitraryMatrix<PRECISION>(z_A_file.c_str());
Eigen::VectorXf z_A = z_A_;
//
std::string z_B_file("z_B.txt");
z_B_file = inputs_folder + z_B_file.c_str();
Eigen::Matrix<PRECISION, Eigen::Dynamic, Eigen::Dynamic> z_B_ = readArbitraryMatrix<PRECISION>(z_B_file.c_str());
Eigen::VectorXf z_B = z_B_;
我可以有一个 PRE-PROCESSOR 函数,这样我就可以写了
read_vector(A);
read_vector(B);
而不是重复相同的代码?
【问题讨论】:
-
不知何故 Inception 浮现在脑海中。你可以,但那有什么用呢?创建向量集合,创建适合文件的命名方案,映射它。 lambda 的奖励积分。
-
如果你有五个或更多这样的sn-ps,那可能是值得的。就两个而言,使用预处理器不值得失去代码的可见性。
-
我有大约 100 个这样的 sn-ps :-) 所以重写它们可能会引入错误。
-
它们并不像 A、B 那样简单,但文件名相当临时且复杂。
标签: c++ gcc g++ c-preprocessor preprocessor-directive