问题标签 [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.
c++ - 迭代模板参数列表?
我试图想办法循环遍历模板参数列表但没有成功
我不能使用 c++11 可变参数模板功能,它需要在编译时完成
我可以假设在否定论点之后不会有肯定论点
任何的想法 ?
c++ - 如何从向量指针中读取元素?
我需要访问一个矢量指针元素,我的动画结构有以下代码(这里简化,不必要的变量被切断):
该阵列有效,我通过以下方式对其进行了测试:
test.frames->size()
它是我计划的 7。
那么如何从向量中访问第 N 个索引处的向量元素(w 和 h)?
c++ - 如何使用 Boost (Lambda?) 使 std::sort() 更容易?
假设我有
如果我想在 C++03 中对一堆Value
索引进行排序,我必须写一些像这样乏味的东西:
有没有办法用 Boost(也许用 Boost.Lambda)更简洁地写这个,最好是在 1 行中?
c++ - 为什么 auto 的旧用法(c++03)不能在 C++11 下编译?
我知道它auto
之前有一点用法,因为它是变量的默认值(与静态相反) - 请参阅问题
考虑有效的 C++03 代码,其中可能为了不言自明,使用了这个关键字:
它在 C++03 下编译,在 C++11 下不编译。是否有任何理由不与 C++03 向后兼容?没有使用这个关键词的标准委员会意见的来源是什么?有关键字使用的统计数据吗?
顺便说一句,我用 gcc 测试过——也许这是一个编译器错误?
c++ - 二元运算符+重载的返回值是否应该是 const 并且会干扰优化?
给定示例代码:
我开始怀疑 operator+() 是否应该实际返回一个 const Integer。Bruce Eckel 在“Thinking in C++”中为类似情况提供了运算符重载的示例,并且似乎支持返回类型上的 const 修饰符。应该使用它,为什么?
另一方面,让我们尝试使用这个类:
当将c创建为a和b的总和时,编译器很可能会执行复制省略,并且 Integer::operator+() 将直接在c占用的位置创建其结果(请参阅“想要速度?按值传递”)。但是当 Integer::operator+() 的返回类型声明为 const 时,由于目标是非常量的,这不会强制编译器执行复制吗?
c++ - 如何测试B类是否派生自类的模板族
如何在编译时测试 B 类是否派生自 std::vector?
如何在编译时测试 B 类是否来自模板族?
使用:
c++ - 更好的说法 x == Foo::A || x == Foo::B || x == Foo::C || ...?
假设我有一堆众所周知的值,就像这样(但这const char *
只是一个例子,它可能更复杂):
现在假设如果某个表达式的结果在其中的一个子集中,我想以一种特定的方式表现:
我发现自己经常输入这种东西,以至于我想要一个速记。
如果语言是 Python,我可以很容易地说:
是否有一种众所周知的可移植方式让我在 C++03 中类似地表达这一点?
请注意,返回类型本身是丑陋的(几乎和lambda 表达式的返回类型一样丑陋),所以我当然不想将它存储在局部变量中。
但是返回类型不必与常量匹配——例如,如果返回类型是std::string
,它不会隐式转换为const char *
,但operator ==
对于比较来说是完全可以的。
到目前为止,我最好的解决方案是这样说:
但它非常丑陋。有没有更好的方法,也适用于非 POD?
c++ - 如何将几个 stl 列表复制到一个但仅具有某些属性
我有几个指向自定义类的指针列表(类是具有基本数据的简单 Person)。如何将所有列表中的指针(浅拷贝)复制到一个新列表,但仅限来自波特兰(城市==波特兰)的人员?我正在使用 STL 中的列表(列表)。我不能使用 C++11。
c++ - C++向量初始化为什么要调用拷贝构造函数
当您以下列方式初始化向量时:
它调用默认构造函数一次,然后再调用复制构造函数 10 次。所以,如果我理解正确的话,向量中的对象都是由复制构造函数创建的。
有人可以解释调用复制构造函数而不是默认构造函数的原因吗?或者甚至只是在没有对象的情况下分配内存?
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 类调用构造函数和析构函数的顺序是确定性的。