小编Mic*_*ael的帖子

CMake:在脚本中打印出所有可访问的变量

我想知道是否有办法在CMake中打印出所有可访问的变量.我对CMake变量不感兴趣 - 就像在--help-variables选项中一样.我在谈论我定义的变量,或者包含脚本定义的变量.

我现在包括

INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityCXX.cmake)
Run Code Online (Sandbox Code Playgroud)

而且我希望我能打印出这里的所有变量,而不是必须浏览所有文件并阅读可用的内容 - 我可能会发现一些我不知道的变量可能有用.帮助学习和发现会很好.它严格用于调试/开发.

这类似于打印Lua中当前作用域可访问的所有局部变量中的问题,但对于CMake!

有没有人这样做过?

cmake

199
推荐指数
4
解决办法
12万
查看次数

'git difftool'只包含修改过的文件

我有很多新文件以及我添加到我的分支中的一些修改过的文件,当我这样做时,git difftool master它会区分所有修改过的文件以及为所有新文件打开.我看到了类似的东西

启动WinMergeU.exe:/ dev/null src/example1.cpp

这是相当恼人的,因为看一看新文件的差异有点无意义.

有没有办法让Git diff修改文件并忽略新文件?

git

7
推荐指数
2
解决办法
2103
查看次数

const char数组(c样式字符串)模板特化

我希望能够基于常量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)

c++ templates

4
推荐指数
1
解决办法
4946
查看次数

标签 统计

c++ ×1

cmake ×1

git ×1

templates ×1