423得票6回答
`enable_shared_from_this`的作用是什么?

我在阅读 Boost.Asio 的示例时遇到了 enable_shared_from_this,但在阅读文档后仍然不知道该如何正确使用它。可以请问有人能给我一个例子和解释,在何时使用此类才是明智的吗。

249得票6回答
在一个类中使用通用的std::function对象与成员函数

我想在一个map中存储同一类的成员函数的函数指针,同时存储std::function对象。但是我尝试使用以下代码失败了:#include <functional> class Foo { public: void doSomething() {} ...

77得票2回答
weak_ptr是如何工作的?

我知道如何使用weak_ptr和shared_ptr。我知道shared_ptr是通过计算其对象中引用的数量来工作的。那么weak_ptr是如何工作的呢?我尝试阅读了boost源代码,但我对boost不够熟悉,无法理解它使用的所有内容。 谢谢。

65得票7回答
为什么std::function不能进行相等比较?

这个问题同样适用于boost::function和std::tr1::function。std::function不支持相等比较:#include <functional> void foo() { } int main() { std::function<void...

41得票4回答
std::tr1::shared_ptr是如何实现的?

我一直在考虑使用共享指针,我知道如何自己实现它--但不想这样做,所以我尝试使用std::tr1::shared_ptr,并且有几个问题... 参考计数是如何实现的?它使用双向链表吗?(顺便说一下,我已经搜索过了,但我找不到可靠的信息。) 使用std::tr1::shared_ptr时有什么...

39得票4回答
std、tr1和boost有什么不同(作为命名空间和/或库)?

我最初认为它们都是一样的,但结果证明我错了。那么有人能简要解释一下这三者之间的区别吗?例如: std::bind (最新一代C++的下一代) std::tr1::bind (旧的,C++ std的扩展) boost::bind (完全独立的库) 或者像std::shared_ptr、s...

29得票6回答
如何引用TR1库?

不同的编译器对TR1似乎有不同的看法。G++只接受以下类型的包含:#include <tr1/unordered_map> #include <tr1/memory> ... 虽然Microsoft的编译器只接受:#include <unordered_map&g...

26得票2回答
不指定模板参数的情况下,定义一个模板类的类型别名

我正在尝试typedef一个无序映射或std :: map,这取决于是否有TR1库。但我不想指定模板参数。到目前为止,根据我所读的,非官方c ++ 0x标准发布之前,未能使用模板来进行typedef是不可能的。那么,有人知道这个的优雅解决方法吗?#ifdef _TR1 #include &lt...

24得票3回答
tr1::unordered_set 的并集和交集

如何在C++中使用tr1::unordered_set类型的集合进行交集和并集操作?我没有找到太多相关参考。 非常感谢任何参考资料和示例代码。 更新:我猜测tr1::unordered_set应该提供交集、并集、差异等操作的函数,因为这是集合的基本操作。当然,我可以自己编写一个函数,但我想...

22得票3回答
如果T是POD类型,那么std::array<T, S>是否保证是POD类型?

我目前正在编写一个C++内存编辑库,对于读/写API,我使用类型特征(std::is_pod,std::is_same)和boost :: enable_if来提供3个重载: 1. POD类型。例如:MyMem.Read(SomeAddress); 2. 字符串类型。例如:MyMem.Rea...