问题标签 [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.
c++ - std::tr1::array 和 boost::array 之间的区别
我的印象是 std::tr1::array 与 boost::array 相同,因为它会在访问越界索引时抛出异常。事实上,我看了一眼标题,看起来也是这样。有人可以解释为什么以下代码会导致总线错误(gcc 版本 4.0.1(Apple Inc. build 5465))和 gcc 4.1.2 上的段错误吗?
谢谢。
c++ - cstdint 和 tr1/cstdint 的区别
<cstdint>
和 和有什么不一样<tr1/cstdint>
?(除了一个把东西放在命名空间std::
和另一个放在std::tr1::
)
由于这些东西还不是标准的,我猜它是特定于编译器的,所以我在谈论 gcc。要使用非 tr1 编译,我必须使用 编译-std=c++0x
,但使用 tr1 时没有这样的限制。
std::
答案也许是没有,但除非有标准,否则你不能到处添加东西。因此,在 c++0x 标准化之前,必须使用 using 发出错误,<cstdint>
但在添加到命名空间时您不必担心tr1::
,这不会声称其中的东西是标准的吗?或者还有更多?
谢谢。
ps - 如果您像我一样将“std”作为标准阅读,我为这个 Q 中过度使用这个词表示歉意。
c++ - 在 GCC 中使用 shared_ptr 的可移植方式
GCC 4.1 使用<tr1/memory>
标头而 GCC 4.3 使用<memory>
标头,我需要一种可移植的方式来shared_ptr
与 GCC 4.3.2 和 GCC 4.2.1 一起使用,有没有办法在不检查 GCC 版本宏或使用 Boost 等外部库的情况下做到这一点?
c++ - std::tr1::function 和 std::tr1::bind
我在 C++ 类中使用非常复杂的 C 函数时遇到问题(重写 C 函数不是一种选择)。C函数:
我需要自己提供一个 void 类型的函数integrand
,而 adapt_integrate 将计算 n 维积分。calcTripleIntegral
如果是独立函数,则(下面)中的代码作为独立函数func
工作)。我想传递一个(非静态!)类成员函数作为被积函数,因为这很容易重载等......
在 GCC 4.4.5(预发行版)上,这给了我:
错误:变量 'std::tr1::function func' 具有初始化程序但类型不完整
编辑:我的代码有什么错误?我现在尝试使用 GCC 4.4、4.5 和 4.6 进行编译,都导致相同的错误。要么没有做任何工作,要么我做错了什么/编辑
非常感谢!如果我不够清楚,我会很乐意详细说明。
PS:我可以通过使用指向 myIntegrator.cpp 中某处定义的函数的函数指针来解决这个问题吗?
最终更新:好的,我错误地认为 TR1 为此提供了一个/两行解决方案。真可惜。我正在将我的类“转换”为命名空间并复制粘贴函数声明。我只需要一个基类和一个重新实现接口的子类。C 函数指针 + C++ 类 = 对我来说是个坏消息。无论如何感谢所有答案,你已经向我展示了 C++ 的一些黑暗角落;)
c++ - 无法在 VS10 中订购weak_ptr
我无法使用 VS10 让 'operator <' 为 Weak_ptr 进行编译。我是否缺少#include 或#using?
即使是文档中的代码示例也不适合我。 http://msdn.microsoft.com/en-us/library/bb982759.aspx
c++ - 关于 std::array 的初始化
假设您有一个模板类的 c++0x std::array 成员,并且您想通过一个带有几个迭代器的构造函数来初始化它:
假设您提供的范围与您的存储大小一致,是否可以在构造函数初始化程序中初始化 std::array,从而避免存储中 Tps 的多余默认构造函数?在这种情况下是否可以利用 std::initializer_list<> ?
c++ - 疯狂的 C++ 向量迭代器
我声明:
接着:
和:
的返回mList.size()
是 0,但是当我使用迭代器时,它会遍历为空的向量!这就是我使用迭代器的方式:
它执行“ someMethod()
”,然后抛出分段错误。迭代器如何在空向量中进行迭代????
更多信息
我正在使用 GTK,所以这就是我传递主要对象的方式:
是this
ClassB 本身。
然后我像这样收到它:
正如我所引用的mList
那样声明了,当我访问其他属性时,假设data->xxx
它可以工作并且很好,问题只发生在mList
这个属性不是动态分配的。
我检查了*data
和的内存地址this
,它们是相同的地址。
c++ - std::tr1::mem_fn 返回类型
我想把这个结果:
在变量内部,这个变量的类型是什么?
这看起来像这样:
另外,结果类型是std::tr1::bind
什么?
谢谢 !
c++ - 用 Boost.TR1 替换原生 VS 2010 (VC10) tr1 库
我一直在 std::tr1 命名空间中使用 VS 2005 (VC8) 和 Boost.TR1,方法是设置 VS 的 Include Directories 以优先考虑 boost tr1 标头,如此处所述。
现在我转移到 VS 2010 (VC10),我似乎使用相同的包含方法得到编译错误。
包含目录设置为:
- [升压根]\boost\tr1\tr1
- [增强根]
- VC 标准包含目录
示例代码:
构建输出:
似乎它正在使用 VC10 的 tr1 标头而不是 boost。让 VS 使用 Boost.TR1 作为替代品的正确方法是什么?
c++ - Boost 的 TR1 或 VC10 - 哪个更好?
我目前正在从 Visual Studio 2008 迁移到 2010。我的软件大量使用了 Boost 及其 TR1 功能。我现在遇到很多编译器错误,因为 VC10 有它自己的 TR1 实现。
我知道我可以使用_HAS_CPP0X
开关禁用 Microsoft 的 TR1 实现(请参阅此处),但我不确定这是否还会禁用将来可能有趣的其他功能。
所以,我想知道 TR1 的哪个实现更好:Boost 的那个还是 Microsoft 的那个?有什么区别吗?禁用 Microsoft 实施是否有任何缺点?