我只是发现这个小小的C++代码并没有给我与clang ++和g ++相同的结果:
#include <iostream>
#include <string>
using namespace std;
const string& createString(char c) {
static string s;
s="";
for(int i=0; i<10; ++i) {
s+=c;
}
return s;
}
int main() {
cout << createString('a') << ' ' << createString('z') << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
使用clang ++它写道:
aaaaaaaaa zzzzzzzzzz
就像我想要的那样,但是用g ++写道:
aaaaaaaaa aaaaaaaaa
为什么会这样?g ++实现标准是否合规?如果我想要一个函数通过像这样的引用返回一个临时的"大"类型,以避免无用的副本,我该怎么办?
在尝试调试 Fish shell 中的提示问题时,我读到 nextd-or-forward-word 函数使用“-f repaint”参数调用命令行内置函数。
我根本不明白它的作用。
“命令行-f”的文档说它“将readline函数注入阅读器”,这是什么意思?
我什至不确定这里的“readline”是什么。是 GNU C 库吗?假设是这样,我在 GNU readline 文档中找不到任何提及“重绘”的内容。
你能向我解释一下吗?