问题标签 [c++03]

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 投票
5 回答
371 浏览

c++ - 迭代模板参数列表?

我试图想办法循环遍历模板参数列表但没有成功

我不能使用 c++11 可变参数模板功能,它需要在编译时完成

我可以假设在否定论点之后不会有肯定论点

任何的想法 ?

0 投票
2 回答
6556 浏览

c++ - 如何从向量指针中读取元素?

我需要访问一个矢量指针元素,我的动画结构有以下代码(这里简化,不必要的变量被切断):

该阵列有效,我通过以下方式对其进行了测试: test.frames->size()它是我计划的 7。

那么如何从向量中访问第 N 个索引处的向量元素(w 和 h)?

0 投票
2 回答
1112 浏览

c++ - 如何使用 Boost (Lambda?) 使 std::sort() 更容易?

假设我有

如果我想在 C++03 中对一堆Value索引进行排序,我必须写一些像这样乏味的东西:

有没有办法用 Boost(也许用 Boost.Lambda)更简洁地写这个,最好是在 1 行中?

0 投票
2 回答
1166 浏览

c++ - 为什么 auto 的旧用法(c++03)不能在 C++11 下编译?

我知道它auto之前有一点用法,因为它是变量的默认值(与静态相反) - 请参阅问题 考虑有效的 C++03 代码,其中可能为了不言自明,使用了这个关键字:

它在 C++03 下编译,在 C++11 下不编译。是否有任何理由不与 C++03 向后兼容?没有使用这个关键词的标准委员会意见的来源是什么?有关键字使用的统计数据吗?

顺便说一句,我用 gcc 测试过——也许这是一个编译器错误?

0 投票
1 回答
126 浏览

c++ - 二元运算符+重载的返回值是否应该是 const 并且会干扰优化?

给定示例代码:

我开始怀疑 operator+() 是否应该实际返回一个 const Integer。Bruce Eckel 在“Thinking in C++”中为类似情况提供了运算符重载的示例,并且似乎支持返回类型上的 const 修饰符。应该使用它,为什么?

另一方面,让我们尝试使用这个类:

当将c创建为ab的总和时,编译器很可能会执行复制省略,并且 Integer::operator+() 将直接在c占用的位置创建其结果(请参阅“想要速度?按值传递”)。但是当 Integer::operator+() 的返回类型声明为 const 时,由于目标是非常量的,这不会强制编译器执行复制吗?

0 投票
3 回答
1558 浏览

c++ - 如何测试B类是否派生自类的模板族

如何在编译时测试 B 类是否派生自 std::vector?

如何在编译时测试 B 类是否来自模板族?

使用:

0 投票
8 回答
1260 浏览

c++ - 更好的说法 x == Foo::A || x == Foo::B || x == Foo::C || ...?

假设我有一堆众所周知的值,就像这样(但这const char *只是一个例子,它可能更复杂):

现在假设如果某个表达式的结果在其中的一个子集中,我想以一种特定的方式表现:

我发现自己经常输入这种东西,以至于我想要一个速记。

如果语言是 Python,我可以很容易地说:

是否有一种众所周知的可移植方式让我在 C++03 中类似地表达这一点?

请注意,返回类型本身是丑陋的(几乎和lambda 表达式的返回类型一样丑陋),所以我当然不想将它存储在局部变量中。

但是返回类型不必常量匹配——例如,如果返回类型是std::string,它不会隐式转换为const char *,但operator ==对于比较来说是完全可以的。

到目前为止,我最好的解决方案是这样说:

但它非常丑陋。有没有更好的方法,也适用于非 POD?

0 投票
2 回答
68 浏览

c++ - 如何将几个 stl 列表复制到一个但仅具有某些属性

我有几个指向自定义类的指针列表(类是具有基本数据的简单 Person)。如何将所有列表中的指针(浅拷贝)复制到一个新列表,但仅限来自波特兰(城市==波特兰)的人员?我正在使用 STL 中的列表(列表)。我不能使用 C++11。

0 投票
1 回答
2985 浏览

c++ - C++向量初始化为什么要调用拷贝构造函数

当您以下列方式初始化向量时:

它调用默认构造函数一次,然后再调用复制构造函数 10 次。所以,如果我理解正确的话,向量中的对象都是由复制构造函数创建的。

有人可以解释调用复制构造函数而不是默认构造函数的原因吗?或者甚至只是在没有对象的情况下分配内存?

0 投票
1 回答
367 浏览

c++ - C++ 和双重检查锁定的风险:解决方法?

我正在阅读一篇关于“Scott Meyers 的双重检查锁定的风险”的论文。http://www.aristeia.com/Papers/DDJ_Jul_Aug_2004_revised.pdf

作者给出了双重检查锁失败的原因(第3页,第4节)。我在想办法在不使用 C++11 的情况下解决这个问题。并不是我不想使用 C++ 11,只是想看看是否可以在不使用 std::call_once 等函数的情况下解决它

Singleton::instance() 中的代码是否会在多线程环境中工作,因为为 SeqAssign 类调用构造函数和析构函数的顺序是确定性的。