问题标签 [tr1]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
1247 浏览

c++ - 数据结构是否适合shared_ptr?

我正在用 C++ 实现二叉树。传统上,我有一个指向左的指针和一个指向右的指针,但手动内存管理通常以泪水告终。这让我想到了我的问题......

数据结构是否适合使用 shared_ptr?

0 投票
3 回答
8820 浏览

c++ - std::tr1 中的 shared_ptr

我正在使用 gcc 编译器的平台上工作,但是 boost 无法在其上编译。

我想知道在 gcc 的 std:tr1 中包含 shared_ptr 的正确方法是什么?我查看的文件说不直接包含它,据我所知没有其他文件包含它:|

0 投票
2 回答
6933 浏览

c++ - TR1 共享数组

我很难在 TR1 文档中找到有关共享数组的参考资料。Boost 文档非常清楚 C++“new”和“new[]”表达式之间存在显着差异。shared_ptr 模板旨在正确保存指向使用“new”创建的动态分配对象的指针。shared_array 模板旨在使用“new[]”正确保存指向动态分配数组的指针。

我正在更新一些代码以使用 TR1 shared_ptr 模板和相关函数,但我发现没有提到 shared_array。TR1 shared_ptr 实现是否区分“new”和“new[]”,并正确销毁这些指针?据我从 TR1 规范中可以看出,它似乎没有。如果是这种情况,我是否仍应将 boost shared_array 模板用于“new[]”样式分配?

0 投票
2 回答
5662 浏览

c++ - 哪个版本的 GNU GCC 支持 TR1 外部模板?

最早支持外部模板的GNU GCC (g++) 版本是什么?例如,4.0 版是否已经支持?TR1

0 投票
3 回答
672 浏览

c++ - 返回一个需要由智能指针持有的“指针”

我有一个项目,我想更多地使用智能指针。总的来说,我在这个目标上是成功的。但是,我遇到了一件我不确定“最佳实践”是什么的事情。

基本上我想从一个函数返回一个“指针”,但要求用户将它保存在一个智能指针中。不仅如此,我不想强​​制使用特定的智能指针(共享与作用域)。

问题主要在于似乎没有正确的方法将 a 升级scoped_ptr到 a shared_ptr(我认为这将是理想的解决方案)。我理解他们为什么不这样做,因为它会允许转让所有权,这可能会导致一些类似的问题std::auto_ptr

但是,在这种情况下,转让所有权似乎是一个好主意。所以我的想法是这样的:

这可以“正常”工作,因为两者都scoped_ptr具有shared_ptr从 a 获取所有权的构造函数std::auto_ptr

所以我的问题是,这是好的做法吗?有更好的解决方案吗?我能想到的唯一真正的选择是使用模板模板作为返回值,如下所示:

这实际上可以很好地工作,只是我认为它需要一些工作才能让它与 a 一起工作scoped_ptr

想法?

0 投票
4 回答
10384 浏览

c++ - 如何为自定义类型扩展 std::tr1::hash?

如何允许 STL 实现选择我的自定义类型?在 MSVC 上,有一个类std::tr1::hash,我可以通过使用来部分专门化它

但这是推荐的方式吗?此外,这也适用于 GCC 的实现吗?对于boost::hash,提供一个免费的功能就足够了size_t hash_value (const MyType&),TR1的实现有没有类似的东西?

0 投票
6 回答
107966 浏览

c++ - `enable_shared_from_this` 有什么用处?

我在阅读 Boost.Asio 示例时遇到了enable_shared_from_this问题,在阅读了文档后,我仍然不知道应该如何正确使用它。有人可以给我一个例子和解释什么时候使用这个类是有意义的。

0 投票
5 回答
2901 浏览

c++ - 编译时如何检查 TR1?

我们正在编写一个将自身保存在 .hpp 文件中的日志库。我们希望包括<tr1/unordered_map>(如果编译器支持 TR1)或其他标准<map>。是否有标准方法在编译时检查 tr1 是否可用?

我在想,就像“ __cplusplus”定义符号的存在方式一样,也可以定义一个“ __cxx__tr1”或类似的东西。我在 TR1 的草稿中没有看到它,所以我认为它不存在,但我想先问一下以防万一。

作为说明,如果这些定义不存在,那么将它们包含在提案本身中并不是一个坏主意。

0 投票
4 回答
16098 浏览

c++ - 哈希函数为一对long long?

我需要将一对映射long long到 a double,但我不确定要使用什么哈希函数。每对可能由任意两个数字组成,尽管在实践中它们通常是介于0和之间的数字100(但同样,这并不能保证)。

tr1::unordered_map文档。我是这样开始的:

一般来说,我永远不确定要使用什么散列函数。什么是好的通用哈希函数?

0 投票
4 回答
1785 浏览

c++ - 从同一个指针构造两个 shared_ptr 对象

我有一个来自“C++ 标准库扩展”的问题:

练习 6
我在 2.4.2 节中说过,你不应该从同一个指针构造两个 shared_ptr 对象。危险在于 shared_ptr 对象或其后代最终都会尝试删除资源,这通常会导致麻烦。事实上,如果你小心的话,你可以做到这一点。它不是特别有用,但是编写一个程序,从同一个指针构造两个 shared_ptr 对象,并且只删除一次资源。

以下是我的回答:

但我认为这不是一个好的解决方案——因为我不想通过使用构造函数来解决它。谁能给我一个更好的?thx,请原谅我糟糕的英语。