小编use*_*468的帖子

关于静态变量的C++参考

我只是发现这个小小的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 ++实现标准是否合规?如果我想要一个函数通过像这样的引用返回一个临时的"大"类型,以避免无用的副本,我该怎么办?

c++ static reference

15
推荐指数
2
解决办法
1374
查看次数

Fish shell 中的“命令行 -f 重绘”是什么?

在尝试调试 Fish shell 中的提示问题时,我读到 nextd-or-forward-word 函数使用“-f repaint”参数调用命令行内置函数。

我根本不明白它的作用。

“命令行-f”的文档说它“将readline函数注入阅读器”,这是什么意思?

我什至不确定这里的“readline”是什么。是 GNU C 库吗?假设是这样,我在 GNU readline 文档中找不到任何提及“重绘”的内容。

你能向我解释一下吗?

fish

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

标签 统计

c++ ×1

fish ×1

reference ×1

static ×1