问题标签 [c++98]

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 投票
1 回答
13288 浏览

c++ - 使用 SFINAE 检测成员函数

在 C++11 中,要确定一个类是否有成员函数size,您可以定义以下测试助手:

在 C++98 中是否有类似的技巧可以在不依赖编译器扩展的情况下执行此操作,例如typeof

0 投票
3 回答
182 浏览

c++ - 构造一个 std::map来自 std::vector>

如何std::map<std::string, Foo>从 a 构造 a std::vector<std::pair<std::string, Foo> >?似乎 std::map 可以从输入迭代器构造。

更新

顺便说一句,在将向量中的字符串添加到地图时,我需要将它们转换为小写形式。这是因为我希望使用地图来获得向量中内容的排序版本。

0 投票
5 回答
355 浏览

c++ - 在 std::vector 上以排序方式迭代> 对象

我正在从 Foo 类型的数据库中读取一个对象,定义如下。该对象是 Foo 成员的向量,其中 Foo 成员由字符串 id 和容器对象组成。

我希望以排序形式迭代 Foo 对象,其中排序是针对 id 完成的。为此,我使用以下函数首先创建对象的排序版本。如您所见,对象以不区分大小写的方式排序。与我目前的做法相比,我是否有更好的方法来迭代这个对象?

0 投票
2 回答
2112 浏览

c++ - std::string 到 uint64_t

如何将 a 转换为std::stringa uint64_t?如果字符串不包含uint64_t. 例如,这些的转换应该抛出:

或通过其他方式表明它们不是纯粹的表示。我正在使用 C++98 和 boost(包括boost::regex)。

0 投票
4 回答
5362 浏览

c++ - 以排序顺序迭代 std::vector

我从 API 收到 Foo 的向量,如下所示:

然后我写了一个名为

它遍历容器并为每个 Foo 对象提取 std::string 类型的键。

您将如何按排序顺序遍历 foos 中的 Foo 对象,其中排序是在键上完成的,并且以不区分大小写的方式进行。此外,我不想制作 foos 的排序副本,因为它的大小很大。

这是我的尝试,它有效,但我想知道它是否可以做得更好。

0 投票
2 回答
44 浏览

types - C++ 类型问题 - 切片问题?

旅游管理器.h

旅游管理器.cpp

导游是 Tour 的一个子类。它覆盖了父旅游类的显示方法。但是,当我遍历游览对象矢量并调用显示时,即使对象是 GuidedTour,它也总是调用 tour::display。

我在这里做错了什么?

我正在使用 C++98 非常感谢。

0 投票
2 回答
7973 浏览

c++ - 无法编译 C++ file.cpp。C++98模式

我是 C++ 新手。当我写

我明白了

“C++98 模式下不允许基于范围的‘for’循环”

据我了解,我必须更改我的 GCC 版本(或只是模式?)。我的g++ -v

使用内置规范。COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.7/lto-wrapper 目标:i686-linux-gnu 配置:../src/configure -v --with-pkgversion='Ubuntu/ Linaro 4.7.2-2ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.

无法从 vim(使用 c.vim 插件)、sublime text3 以及使用gcc program.cppand的终端编译gcc -pedantic -std=c99 program.cpp

我已经下载了 gcc 4.8.1 但它不是 deb 包所以无法正确安装。还听说过 C++11、C++14、C++98、C++99。我在哪里/如何获取/安装最新版本?

vim插件c.vim的解决方案:

编辑“c.vim/plugin/c.vim”。更改此行

let s:C_CplusCFlags = '-Wall -g -O0 -c -std=c++11' " C++ compiler flags: compile, don't optimize

我添加了“-std=c++11”并且它有效。

0 投票
2 回答
702 浏览

c++ - 纯虚函数覆盖虚函数

假设给出以下代码。

类用-virtual 方法B覆盖虚拟方法。这样做的目的可能是扩展在我们的案例类中不允许修改的现有类,但仍然有一个抽象类,它必须是一些其他类的基类。someMethodAB

根据MISRA-C++ 规则 10-3-3:代码分析器发出警告:纯虚函数覆盖非纯虚函数。

但我找不到有关警告的详细信息。上述代码的副作用是什么?这里有什么不好的做法?


更新:标准是 MISRA-C++ (C++98)

0 投票
1 回答
289 浏览

c++ - 使用索引的随机访问迭代器 - 示例

我试图澄清我关于迭代器的概念,并且在阅读Random Access Iterators本书时指出这些迭代器可以与实例索引一起使用iterat[myIndex]。现在我以一种简单的方式使用了带有向量的随机访问迭代器:

我想知道如何使用带有随机访问迭代器的索引以及何时需要?任何建议,将不胜感激

0 投票
1 回答
241 浏览

c++ - boost::functions 类型的空实现

我有这样的事情:

这是定义 nullStyler 的正确方法吗:

我在想我可以这样做,但是空函数抛出:

使用 styler 函数的代码可以检查空,而不是使用“空对象模式”。哪个更好?在我的 Detail 命名空间中有一个奇怪的无功能或检查是否为空?