我想知道是否有办法在CMake中打印出所有可访问的变量.我对CMake变量不感兴趣 - 就像在--help-variables选项中一样.我在谈论我定义的变量,或者包含脚本定义的变量.
我现在包括
INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityCXX.cmake)
Run Code Online (Sandbox Code Playgroud)
而且我希望我能打印出这里的所有变量,而不是必须浏览所有文件并阅读可用的内容 - 我可能会发现一些我不知道的变量可能有用.帮助学习和发现会很好.它严格用于调试/开发.
这类似于打印Lua中当前作用域可访问的所有局部变量中的问题,但对于CMake!
有没有人这样做过?
我有很多新文件以及我添加到我的分支中的一些修改过的文件,当我这样做时,git difftool master它会区分所有修改过的文件以及为所有新文件打开.我看到了类似的东西
启动WinMergeU.exe:/ dev/null src/example1.cpp
这是相当恼人的,因为看一看新文件的差异有点无意义.
有没有办法只让Git diff修改文件并忽略新文件?
我希望能够基于常量c样式字符串进行专门化.问题是当我调用我的模板化函数时,类型是const char [N],其中'N'是字符串+1(空字符)的大小.我如何专注于所有c风格的字符串?
以下代码显示问题.您可以看到const char [15]的特化与"const char [15]"相匹配,但对于"const char [5]",它转到Generic.
有没有办法做到这一点?
template <typename T>
struct Test {
static const char* type() { return "Generic"; }
};
template <>
struct Test<const char*> {
static const char* type() { return "const char*"; }
};
template <>
struct Test<const char[]> {
static const char* type() { return "const char[]"; }
};
template <>
struct Test<const char[15]> {
static const char* type() { return "const char[15]"; }
};
template <>
struct Test<char*> {
static …Run Code Online (Sandbox Code Playgroud)