如何使用作为参数传递的信息来构建在其他CPP文件中定义的字符串

时间:2018-06-15 06:17:56

标签: c++

我有一个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 具有用户传递的内容之前进行评估。

您认为我怎么能解决这个问题?

非常感谢大家。

1 个答案:

答案 0 :(得分:1)

可以通过使用函数轻松完成:

path_caffe_cuda_cudnn

只要在constants::cudnn_version初始化之前未调用git rm .git ,就可以了。