小编Con*_*lyM的帖子

为什么 C++ 中不允许 std::pair<int[N], int[N]> ?

为什么下面的C++代码无法编译?

#include <utility>

int main() {
    int x[6];
    int y[6];
    std::pair<int[6], int[6]> a(x, y);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

例如 MSVC 给出以下错误:

错误 C2661: 'std::pair<int [6],int [6]>::pair': 没有重载函数需要 2 个参数

感谢使用C++替代品构造数组的评论,但我也想知道代码无法编译的原因。

c++ arrays std-pair

7
推荐指数
1
解决办法
247
查看次数

为什么 std::thread 可以返回但不可复制的限制?

我对下面代码的成功编译感到非常困惑。函数“g”中的变量“t”显然是左值。当'g'返回到主函数时,'t'应该被复制。但是线程对象是不可复制的,那为什么会编译成功呢?

#include <thread>

void some_other_function(int) {
    return;
}
std::thread g()
{
    std::thread t(some_other_function,42);
    return t;
}

int main() {
    g();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ compilation c++11 stdthread

2
推荐指数
1
解决办法
92
查看次数

标签 统计

c++ ×2

arrays ×1

c++11 ×1

compilation ×1

std-pair ×1

stdthread ×1