小编Fal*_*lco的帖子

std :: stringstream和str方法

我在尝试使用stringstream对象时注意到了一些事情.这是一个无用的例子来解释这个:

stringstream ss ;
ss << "my string" ;
cout << ss.str() << endl ;
Run Code Online (Sandbox Code Playgroud)

不等于

cout << (stringstream() << "my string").str() << endl ;
Run Code Online (Sandbox Code Playgroud)

这会导致编译错误,抱怨'class std :: basic_ostream'没有名为'str'的成员.

我不能轻易解释这一点.这对我的应用程序并不重要,但我很确定这隐藏了一个有趣的c ++技巧.

注意:我正在使用gcc和c ++ 14

c++ stringstream

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

互斥体和lambda函数在c ++中

当并发处理问题我经常使用std::unique_lock<std::mutex>,并std::lock_guard<std::mutex>与两者没有任何问题.

我也扩展std::mutex到能够使用它如下:

mutex.protect([](){
    // my protected code here
}) ;
Run Code Online (Sandbox Code Playgroud)

它锁定互斥锁并在lambda调用周围释放它.

在boost或标准库中是否已经实现了类似的行为?

c++ lambda boost mutex c++11

5
推荐指数
1
解决办法
1660
查看次数

最后针对所有目标链接库

我在项目中添加了对gperftools的支持,以分析cpu和内存。Gperftools需要为每个二进制文件最后链接库tcmalloc 。

cmake是否可以通过一种方法将库附加到项目的每个二进制目标中,而无需编辑每个目标CMakeLists.txt

我在这里发现了一个类似的问题:将链接库链接到cmake项目中的所有目标,但未得到回答。建议使用宏来克服该问题,但是没有说明如何实现。

c++ cmake

3
推荐指数
1
解决办法
1866
查看次数

标签 统计

c++ ×3

boost ×1

c++11 ×1

cmake ×1

lambda ×1

mutex ×1

stringstream ×1