11得票1回答
在gcc中实施C++98标准

我有一个学校作业,需要用符合C++98标准的代码编写。如何强制g++只接受遵循这个标准的代码?我是否只需要使用-std=c++98命令或者还需要添加其他参数?

7得票4回答
按排序顺序迭代std::vector

我从API接收到如下的Foo向量: Foo std::vector<Foo> foos; 我接下来写了一个名为 的函数 std::vector<std::string> getKeys(const std::vector<Foo>&) ...

9得票1回答
我真的需要大量使用explicit关键字吗?

当我使用最近发布的Cppcheck 1.69对我的代码1进行检查时,它显示了许多我原本不希望出现的消息。禁用noExplicitConstructor后,发现所有这些消息都是相同类型的。 但我发现,我不是唯一一个收到许多新Cppcheck消息的人,请看LibreOffice分析结果(我被允许...

95得票3回答
默认初始化、值初始化和零初始化混淆问题

我非常困惑于值初始化、默认初始化和零初始化。特别是当它们在不同的标准(C++03、C++11和C++14)中启用时。我在引用并扩展一个真正好的答案Value-/Default-/Zero- Init C++98 and C++03,以使其更加通用,因为如果有人可以帮助填补所需的空白,那么它将对...

7得票2回答
从默认参数推断模板参数

考虑以下代码: #include <functional> template <typename T,typename COMP> bool foo(T a,T b,COMP c = std::less<T>()) { return c(a,b...

7得票2回答
初始化内联布尔向量

我使用这个例子来初始化布尔向量: #include <iostream> #include <map> #include <vector> using namespace std; int main() { map<int, vector<...

7得票2回答
std::copy/memcpy/memmove 优化

我查看了GCC STL(4.6.1)并发现std::copy()在内置__is_trivial()计算结果为true时会使用优化版本。 由于std::copy()和std::reverse_copy()模板非常适用于在数组中复制元素,因此我想使用它们。但是,我有一些类型(这些类型是模板实例化...

46得票2回答
常量对象的向量导致编译错误

我在我的代码中声明了以下内容vector <const A> mylist; 我得到了以下编译错误 - new_allocator.h:75: error: `const _Tp* __gnu_cxx::new_allocator<_Tp>::address(cons...

8得票1回答
使用const引用参数进行自我赋值的行为

我偶然发现了一些非常老的代码,其中一个类定义了复制赋值运算符,它将参数作为const引用,但也没有检查自我赋值,因此本质上是: struct A { int q; A(): q(3) {} A& operator=(const A& a) {...

9得票1回答
在C++98中,int a=int();的作用是将变量a初始化为0。

在你考虑将问题标记为重复之前,请完整阅读问题。像 int i=int(); 这样的语句,大多数程序员会说这里有值初始化,i将被值初始化。(输出为0)。但是在C++98编译器上也会输出0。下面的程序是我在C++98实现上测试的,它给我输出了0。 #include <iostream&...