问题标签 [g++4.8]

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 回答
1268 浏览

c++ - g ++正则表达式在(可能是非语法的)表达式上崩溃

我认为以下程序应该抱怨它不能编译正则表达式,或者将其视为合法并编译它(我没有标准,所以我不能确定表达式是否严格合法;当然合理的解释是可能的)。无论如何,发生的事情g++ (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1是,在运行时,它会严重崩溃

在图书馆的内脏。

问题是:

a)这是错误,对吗?我假设(也许是错误的)标准没有说 std::regex 如果它不喜欢语法会崩溃。(msvc 吃得很好,fwiw)

b)如果它是一个错误,是否有一些简单的方法可以查看它是否已被报告(我第一次在 gnu-land 错误系统周围探查是令人生畏的)?

0 投票
0 回答
1017 浏览

c++ - ifdef 在资源文件中不起作用

我正在尝试使用:

在我的资源文件(.rc)中。当我为 x64 编译时,它应该包含 x64 资源。当我为 x32 编译时,它应该包含 x32 资源。然而,它没有..

它正在使用以下方式编译:

输出文件为 bin\Release\TestLoader.exe,大小为 3.02 MB

对于 x64 编译,它使用:

用于 x32 编译。

任何想法为什么它不有条件地包含特定资源?它始终包含文件顶部的第一个资源.. 也就是 x64 资源。

0 投票
2 回答
304 浏览

c++ - C++11 非类型模板参数捆绑扩展

在使用 C++11 模板参数包时,我想出了以下代码:

尝试使用 g++4.8.2 编译它导致 "too few arguments to function ‘void testFunc(int, int)’"错误。

这不是有效的 C++ 还是 g++ 还没有实现这种非类型模板参数包的使用?

0 投票
1 回答
63 浏览

c++ - 为什么下面的代码不会产生任何输出?

为什么下面的代码不产生任何输出?我希望它是42 s。如何解决?

http://ideone.com/EsHsRO

实际上,它产生http://codepad.org/k7ld231E
为什么foo错了?

0 投票
3 回答
247 浏览

c++ - 在不同的 C++ 编译器中读取文件

编辑:最初我认为这是由于我测试程序的不同IDE。问题似乎缩小到每个 IDE 使用的单独编译器。

对于我的 C++ 类介绍中的一项作业,我需要编写一个程序,从文件中读取双精度值并评估它们,将内容输出到另一个 .txt 文件

我使用 Visual Studio 2012 编写程序,它按照我的预期读取文件,并按预期执行

我相信我的老师使用的是 Dev C++,所以我在那个 IDE 以及 Code::Blocks 中编译了相同的代码。

我注意到的是 get 指针的行为不同,我相信这是由于编译器造成的。在 Code::Blocks 和 Dev C++ 中,读取第一个 double (6.0) 后,inFile.tellg() 返回 15。在 VS2012 中,它返回 3。

我可以对这个程序做些什么,以便它可以在所有 IDE 中运行?

要读取的文件:
每行的前 3 个数字是盒子的尺寸,接下来的 2 个数字是适合盒子的罐子的直径和高度。

预期输出(在 VS2012 中执行):

Code::Blocks 和 Dev C++ 的输出:

最后是程序:

我为代码转储道歉,但我一直在寻找并且找不到对此或如何修复它的可靠解释。

0 投票
2 回答
168 浏览

performance - g++-mp-4.8 和 g++-4.8 之间有什么不同的性能差异吗?

我在两台不同的机器上编译相同的程序,然后运行测试来比较性能。

两台机器的功率是有区别的:一台是配备四个 2.3GHz 处理器的 MacBook Pro,另一台是配备十二个 2.9GHz 处理器的戴尔服务器。

但是,mac 运行测试程序的时间更短!!

编译的唯一区别是我在机器 mac 上运行 g++-mp-4.8,而在另一台机器上运行 g++-4.8。

编辑:没有进行并行计算,我的进程是服务器上唯一运行的进程。此外,我还更新了戴尔的核心数量。

编辑 2:我运行了三个复杂性增加的测试,获得的时间是(戴尔,Mac)格式,以秒为单位:(1.67,0.56),(45,35),(120,103)。这些差异是相当大的!

编辑3:关于实际的处理器速度,我们与系统管理员一起考虑过,但仍然没有充分的理由。以下是 MacBook 处理器的规格:

http://ark.intel.com/fr/products/71459/intel-core-i7-3630qm-processor-6m-cache-up-to-3_40-ghz

这里是服务器:

http://ark.intel.com/fr/products/64589/Intel-Xeon-Processor-E5-2667-15M-Cache-2_90-GHz-8_00-GTs-Intel-QPI

0 投票
2 回答
5344 浏览

c++ - C++:奇怪的“是私有的”错误

我从 g++ 中得到一个非常不寻常的错误,声称类型别名是私有的。经过数小时减少代码后,我得出了以下最小测试用例:

g++ 4.8.2 的错误是:

Clang 3.4 接受相同的代码。这是怎么回事,这是一个 g++ 错误吗?

执行以下任何操作都会阻止错误发生:

  • 变成Test一个类,而不是一个模板类。
  • 删除任何函数中的任何语句。
  • 更改TheCatDog::Dog::bark();CatDog::Dog::bark();.
  • 删除CrazyHouse类并将其内容合并到Test.
  • 删除CatDog类,将其内容合并到Test并将TheCatDog别名更改为指向Test.
0 投票
1 回答
497 浏览

c++ - 禁用“包含在文件中”g++ 消息

我正在使用 g++ 开发一个 C++ 项目。我正在使用#pragma消息来打印各种诊断消息(正在编译类的哪些部分等)。起初它很有用,但随着包含链开始增长,它失控了。

当我编译我的任何对象时,我保证会收到至少 3 条类似于以下内容的消息:

当我进行完整构建时,我会得到数百个。我想要打印实际的消息 (XnInterface.h:14...),而不是其余的。我真的不在乎它是从哪里包含在这种情况下的,这使得实际的警告很难被发现。

我发现我可以用 禁用最后两行-fno-diagnostics-show-carat,但找不到不打印包含链的选项。

我不想将它们作为系统标头包含在内,-i/INCLUDE因为这样会删除整个消息。是否可以只禁用包含链?g++ 手册页不是为深夜阅读而设计的,所以我承认我可能遗漏了一些东西。

谷歌没有帮助。我想不出一个可以返回甚至相关结果的搜索查询。

来自 XnInterface.h 的相关代码,fwiw:

而且,在相关的说明中,上帝保佑我让 Boost 不高兴。它吐得太厉害了,我不得不用更少的钱来抓住它。其中大部分是“在文件中包含...”

非常感谢任何和所有帮助!

0 投票
2 回答
798 浏览

c++ - Visual Studio 2012下奇怪的ifstream访问冲突

我有这段代码在使用 g++ 的 Linux 上工作:

其中三个点代表一些代码。在 g++ 和 Visual Studio (2012) 上,代码都可以编译。但是在 Visual Studio 中,第一行会引发访问冲突异常。这实际上发生在打开文件时,调试器将我重定向到do_always_noconv但我不明白这个问题。

包含文件名的字符串是有效的,并且程序试图打开的文件在 good 目录中,调试器在这个目录中工作。我猜问题不是来自文件本身,因为如果流无法打开它,那么我仍然可以输入下一行而不会出现访问冲突。

有没有人已经遇到过这个问题或有想法?再次使用 g++ 在 Linux 上运行没有任何问题。

谢谢你的帮助。

0 投票
1 回答
81 浏览

c++ - 如何获得有关旧异常规范的警告

我知道除其他外(如 auto_ptr),异常规范在 C++11 中已被弃用。

有没有办法使用以下代码从 g++ 4.8 获得警告?

我已经尝试过-Wall -pedantic -Wextra -Wdeprecated-declarations,但没有任何成功。