小编Kai*_*ast的帖子

条件变量和共享互斥锁

我想知道为什么我不能在C++ 14(或17)中做到这一点

std::shared_timed_mutex mutex;
std::unique_lock<std::shared_timed_mutex> lock(mutex);

std::condition_variable var;

while(!some_condition)
    var.wait(lock);
Run Code Online (Sandbox Code Playgroud)

条件变量似乎只适用于std :: mutex.但为什么?

c++ multithreading c++14

8
推荐指数
1
解决办法
1710
查看次数

引用会导致内存泄漏吗?

请考虑以下C++代码.

struct foo { std::string value; }

inline foo bar() { return { "42" }; }
Run Code Online (Sandbox Code Playgroud)

现在假设我有一个以下列方式使用bar()的函数.

std::string my_func()
{
    const auto &x = bar();
    return x.value;
}
Run Code Online (Sandbox Code Playgroud)

这是否泄漏内存因为my_func只保存对x的引用?或者,在my_func终止后,x仍然会被清除吗?

我知道这不是应该如何使用引用.但我刚刚意识到这个编译很好,并想知道它的语义是什么.

c++ c++11

4
推荐指数
2
解决办法
591
查看次数

标签 统计

c++ ×2

c++11 ×1

c++14 ×1

multithreading ×1