有没有办法从用户输入读取一个单个字符?例如,他们在终端按一个键然后返回(有点像getch()
).我知道Windows中有一个功能,但我想要一些跨平台的功能.
有没有办法设置主机Git存储库,以便默认情况下git pull
从其(本地)克隆完成任何操作--rebase
?通过搜索Stack Overflow,我了解到了branch.autosetuprebase
,但需要单独为每个克隆配置它.
我的项目流程设置为pull
在develop
分支merge
功能分支之前进行分支.这pull
几乎总是使用--rebase
,所以我试图弄清楚这是否是默认值.
鉴于:
namespace Foo {
class Foo {
public:
/// Foo enum, possible ways to foo
enum class Foo {
/// Foo it with an A
A,
/// Foo it with a B
B,
/// Foo it with a C
C
}
}
}
Run Code Online (Sandbox Code Playgroud)
和默认的Doxyfile doxygen -g
,我得到这个:
如何记录枚举值?我尝试在成员之前/之后发表评论,使用///<
等等都无济于事.可能这只是doxygen中的一个错误?文档中的示例有效.(点击枚举名称不会带我到任何地方)
一元运算+
符是否仅包含与一元运算-
符对称,还是在C++代码中找到了一些实际用途?
在这里搜索,我遇到了C中一元'+'运算符的目的是什么?,但唯一有用的场景涉及预处理器宏.这些都是很好的,但它们似乎是一些不常见的情况,并涉及宏.是否有涉及更常见的C++代码的用例?
根据这个答案,我尝试打印一个uint64_t
,但它给了我一个错误:
错误:在'PRIu64'之前预期``)'
以下是显示我想要做的最小代码:
#define __STDC_FORMAT_MACROS
#include <inttypes.h>
#include <cstdio>
class X {
X() {
uint64_t foo = 0;
printf("%07" PRIu64 ": ", foo);
}
};
int main() {}
Run Code Online (Sandbox Code Playgroud)
这个最小的代码编译,但我的实际代码没有.但是,我尝试X::X()
在我的实际代码中使用完全相同的2行,这不起作用.
我应该寻找什么来进一步调试?我的实际代码也是#include
其他标题.这会导致问题吗?包含标题的顺序是否重要?
编辑
PRIu64
在我的机器上定义如下:
# if __WORDSIZE == 64
# define __PRI64_PREFIX "l"
# define __PRIPTR_PREFIX "l"
# else
# define __PRI64_PREFIX "ll"
# define __PRIPTR_PREFIX
# endif
# define PRIu64 __PRI64_PREFIX "u"
Run Code Online (Sandbox Code Playgroud) 我注意到doxygen 1.8.2有一个奇怪的问题.包含标题标签会导致标题标题从输出html中消失.
使用以下markdown文件:
Title {#title}
=====
Section 1 {#section1}
---------
Text for section 1
Run Code Online (Sandbox Code Playgroud)
我得到的输出为:
标题
第1节的文字
但是,如果我{#section1}
从markdown文件中删除标签,我会得到正确的输出:
标题
第1节
第1节的文字
我在这里犯的错是什么?
编辑我在标记部分时发现了以下警告:
warning: found subsection command outside of section context!
Run Code Online (Sandbox Code Playgroud) 我想反转sin
/ cos
操作以恢复一个角度,但我无法弄清楚我应该做什么.
我已经使用sin
和cos
以弧度为单位的角度来获得x/y向量:
double angle = 90.0 * M_PI / 180.0; // 90 deg. to rad.
double s_x = cos( angle );
double s_y = sin( angle );
Run Code Online (Sandbox Code Playgroud)
鉴于s_x
并且s_y
,才可能找回角度?我认为atan2
是使用的功能,但我没有得到预期的结果.
我想在我的博客中使用自定义样式代码片段.我定义了以下样式:
mystyle {
background: #C3FFA5;
border: solid 1px #19A347;
color: #191919;
display: block;
font-family: monospace;
font-size: 12px;
margin: 8px;
padding: 4px;
white-space: pre;
}
Run Code Online (Sandbox Code Playgroud)
我用它如下:
<mystyle>
int main() {
cout << "Hello World" << endl;
}
</mystyle>
Run Code Online (Sandbox Code Playgroud)
这给出了以下输出.我试过Firefox和谷歌Chrome.
我想删除块开头的额外行.显然,我理解换行符的来源,而我可以使用<mystyle>int main() {
.如果我使用<pre>
而不是<mystyle>
,没有额外的换行符,那么我也可以使用自定义样式吗?
我尝试包含std::condition_variable
作为类成员,并在将此类的对象传递给a时遇到大量编译错误std::thread
.我从我的实际程序中删除了所有其他代码,最后得到了以下最小代码.删除std::condition_variable
原因没有问题.我尝试在构造函数中"初始化"变量,以及制作它inline
,但都没有帮助.
#include <thread>
#include <condition_variable>
struct ThreadHandler {
void operator()() { }
std::condition_variable cond;
};
int main() {
ThreadHandler th1;
std::thread t1(th1);
t1.join();
}
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
以下是我得到的编译错误:
In file included from main.cpp:1:
/usr/local/include/c++/8.1.0/thread: In instantiation of ‘static std::thread::_Invoker<std::tuple<typename std::decay<_Tp>::type, typename std::decay<_Args>::type ...> > std::thread::__make_invoker(_Callable&&, _Args&& ...) [with _Callable = ThreadHandler&; _Args = {}; typename std::decay<_Tp>::type = ThreadHandler]’:
/usr/local/include/c++/8.1.0/thread:127:22: required from ‘std::thread::thread(_Callable&&, _Args&& ...) [with _Callable = ThreadHandler&; _Args = {}]’
main.cpp:14:23: required from …
Run Code Online (Sandbox Code Playgroud) 我注意到将a分配char
给const int&
编译,但将其分配给a int&
会产生编译错误.
char c;
int& x = c; // this fails to compile
const int& y = c; // this is ok
Run Code Online (Sandbox Code Playgroud)
我知道这样做不是一个好习惯,但我很想知道它发生的原因.
我通过寻找"分配给不同类型的引用","将char分配给int引用"和"const引用与非const引用之间的区别"来搜索答案,并且遇到了许多有用的帖子(int VS const int的和,分配一个char到一个int变量时怪异的行为,转换字符在C和C++为int,参考和const引用作为函数参数之间的区别是什么?),但他们似乎并不是解决我的问题.
如果以前已经回答过,我很抱歉.