我有一个C ++程序,它有几个带有变量声明的.hpp文件(大多数是NFS文件系统的路径)和带有这些变量定义的.cpp文件。
在其中一些类型为std :: string的变量中,我需要通过附加在主程序中作为参数传递的一些内容来构建其内容。例如:
档案 constants.hpp :
namespace constants {
extern std::string cudnn_version;
extern const std::string path_caffe_cuda;
extern const std::string path_caffe_cuda_cudnn;
}
文件 constants.cpp :
const std::string constants::path_caffe_cuda = "/nfs/apps/caffe/cuda";
const std::string constants::path_caffe_cuda_cudnn = constants::path_caffe_cuda + "/cudnn" + constants::cudnn_version;
constants :: cudnn_version 的内容在主程序中作为参数向用户询问并在那里更新。问题是,当 constants :: path_caffe_cuda_cudnn 变量必须使用 constants :: cudnn_version 变量的内容构建时,其内容仍然是空的,所以在某种程度上变量< em> path_caffe_cuda_cudnn 在 constants :: cudnn_version 具有用户传递的内容之前进行评估。
您认为我怎么能解决这个问题?
非常感谢大家。
答案 0 :(得分:1)
可以通过使用函数轻松完成:
path_caffe_cuda_cudnn
只要在constants::cudnn_version
初始化之前未调用git rm .git
,就可以了。