小编Tus*_*eja的帖子

从函数返回大括号初始值设定项列表:它编译成什么?

例如,这是一小段代码。

#include <iostream>

struct coordinate {
    int x, y;
};

coordinate shift(coordinate p, int offset) {
    return {p.x + offset, p.y + offset};
}

int main(int argc, char *argv[]) {
    coordinate p {1, 2};
    coordinate p_s = shift(p, 3);
    std::cout << "x: " << p_s.x << "\ty: " << p_s.y;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在函数中shift,我们看到 return 语句似乎返回一个初始值设定项列表。

虽然我理解这在语义上意味着什么,但我希望确认我是否理解它的编译结果。

编译器是否将shift函数解释为这样?

shift(coordinate p, int offset) {
    coordinate p_ {p.x + offset, p.y + offset};
    return p_;
}
Run Code Online (Sandbox Code Playgroud)

如果没有,那又如何呢?

感谢您的帮助。

c++ initializer-list

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

如何忽略目录中除一个文件以外的所有内容

回购结构:

.gitignore
file1
file2
dir/
    file3
    <stuff>
Run Code Online (Sandbox Code Playgroud)

我想忽略dir文件3之外的所有内容。这是.gitignore文件中包含的内容:

dir/*
!dir/file3
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用。git仍然尝试索引中的所有内容dir。我该如何解决?

更新 -删除旧的.gitignore文件并制作一个新文件后修复。新的不是使用制作的> .gitignore

git

0
推荐指数
1
解决办法
1822
查看次数

标签 统计

c++ ×1

git ×1

initializer-list ×1