我知道如何在c ++中交换2个变量,即你使用std::swap(a,b).
题:
是否C标准库也有类似的功能,C++ std::swap()或我定义它自己.
如何找到两个平面之间的交线?
我知道数学思想,并且我在平面法向量之间做了交叉乘积
但是如何以编程方式从结果向量中获取该行
锈有能力在构建检查配置时间,例如,#[cfg(target_os = "linux")]或者 if cfg!(target_os = "linux") {...},在那里target_os是一个功能.
是否有可以在Rust中检查的所有(或至少是常用的)功能的列表?
查看有关属性的 相关问题是否有任何标准属性的详尽列表?.
Rustup文档显示了如何每晚安装Rust,但不知道如何删除它.
虽然文档确实显示了如何rustup完全卸载,但我想保留稳定的分支.
我怎么能每晚卸载Rust?
请注意,我尝试与rustup install nightly...(rustup uninstall nightly,rustup remove nightly&rustup delete nightly)相反,但没有用.
即使我阅读文档,也不清楚nightly是a toolchain,a channel......还是别的什么.
虽然我知道这是有效的C不能区分枚举类型.
GCC确实-Wenum-compare(我正在使用)并按预期工作.
我试过使用,-Wconversion但这没有任何区别.
分配和算术运算符(+/ -/ &/ |...等)如何产生警告?(作业,或者......等)
{
enum Foo f = SOME_VALUE;
enum Bar b = SOME_OTHER_VALUE;
if (f != b) {
/* this warns! */
}
f = b; /* <-- how to warn about this? */
f |= b; /* .. and this? */
}
Run Code Online (Sandbox Code Playgroud)
笔记:
如果我使用不好的术语,请提前道歉.
当我在gdb下编译一个C++应用程序并使用printf()时,它给出了与格式字符串的一致性和传入的参数有关的令人敬畏的警告.
例如,这段代码:
printf("%s %s", "foo");
Run Code Online (Sandbox Code Playgroud)
导致编译器警告"格式参数太少",这非常有用.它还会提供有关格式字符串类型与参数类型的警告.它必须检查格式字符串并将其与提供的参数类型进行比较. - 这种编译时内省可以添加到普通源代码中,还是需要编译成gcc本身的东西?
fwiw这是在os x的gcc 4.2.1下.
最近我开始在现有项目中编写一些doxygen文档,这个项目已经有很多doxygen评论.
因为我正在学习一点 - 我喜欢迭代编辑和生成文档,因为doc生成很慢 - 3-5分钟.这变得不可行.
我通过删除源代码树中的大多数文件进行管理,因此doxy只发现了我正在编辑的文件,但这确实是一个非常糟糕的解决方案,而不是我经常要做的事情.
有没有办法(例如命令行arg或env变量) - 限制哪些文件/模块用于生成文档 - 所以重建文档可以更快地完成?
我想运行一个解析整个源代码树的cmake命令,所以我无法在cmake的add_custom_command/add_custom_target命令中列出所有可能的依赖项.
有没有可能告诉cmake只是在没有任何条件的情况下运行命令?我尝试了在网上找到的所有解决方案(包括SO),但他们都假设该命令依赖于几个已知的最新文件.
我找到了一个解决方案,但它无法可靠地工作:
cmake_minimum_required(VERSION 2.6)
project(main)
add_custom_command(
OUTPUT file1
COMMAND echo touching file1
COMMAND touch file1
DEPENDS file2)
add_custom_target(dep ALL DEPENDS file1 file2)
# this command re-touches file2 after dep target is "built"
# and thus forces its rebuild
ADD_CUSTOM_COMMAND(TARGET dep
POST_BUILD
COMMAND echo touching file2
COMMAND touch file2
)
Run Code Online (Sandbox Code Playgroud)
这是输出:
queen3@queen3-home:~/testlib$ make
[100%] Generating file1
touching file1
touching file2
[100%] Built target dep
queen3@queen3-home:~/testlib$ make
[100%] Generating file1
touching file1
touching file2
[100%] Built target dep
queen3@queen3-home:~/testlib$ make
touching …Run Code Online (Sandbox Code Playgroud) 在C和C++中,您可以通过__func__C99和C++ 11以及___FUNCTION___MSVC 的宏获取当前正在执行的函数的名称.
在Rust中有相同的吗?
__func__C中的示例:
#include "stdio.h"
void funny_hello() {
printf ("Hello from %s\n", __func__);
}
int main() {
funny_hello();
}
Run Code Online (Sandbox Code Playgroud)
输出Hello from funny_hello.
一次迭代多个变量,重叠(slice::windows)或不重复()可能很有用slice::chunks.
这仅适用于切片; 是否可以为迭代器执行此操作,为方便起见使用元组?
可以写下以下内容:
for (prev, next) in some_iter.windows(2) {
...
}
Run Code Online (Sandbox Code Playgroud)
如果没有,它是否可以作为现有迭代器的特征实现?