问题标签 [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.
c++ - g ++正则表达式在(可能是非语法的)表达式上崩溃
我认为以下程序应该抱怨它不能编译正则表达式,或者将其视为合法并编译它(我没有标准,所以我不能确定表达式是否严格合法;当然合理的解释是可能的)。无论如何,发生的事情g++ (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
是,在运行时,它会严重崩溃
在图书馆的内脏。
问题是:
a)这是错误,对吗?我假设(也许是错误的)标准没有说 std::regex 如果它不喜欢语法会崩溃。(msvc 吃得很好,fwiw)
b)如果它是一个错误,是否有一些简单的方法可以查看它是否已被报告(我第一次在 gnu-land 错误系统周围探查是令人生畏的)?
c++ - ifdef 在资源文件中不起作用
我正在尝试使用:
在我的资源文件(.rc)中。当我为 x64 编译时,它应该包含 x64 资源。当我为 x32 编译时,它应该包含 x32 资源。然而,它没有..
它正在使用以下方式编译:
输出文件为 bin\Release\TestLoader.exe,大小为 3.02 MB
对于 x64 编译,它使用:
用于 x32 编译。
任何想法为什么它不有条件地包含特定资源?它始终包含文件顶部的第一个资源.. 也就是 x64 资源。
c++ - C++11 非类型模板参数捆绑扩展
在使用 C++11 模板参数包时,我想出了以下代码:
尝试使用 g++4.8.2 编译它导致
"too few arguments to function ‘void testFunc(int, int)’"
错误。
这不是有效的 C++ 还是 g++ 还没有实现这种非类型模板参数包的使用?
c++ - 为什么下面的代码不会产生任何输出?
为什么下面的代码不产生任何输出?我希望它是42 s
。如何解决?
实际上,它产生http://codepad.org/k7ld231E。
为什么foo
错了?
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++ 的输出:
最后是程序:
我为代码转储道歉,但我一直在寻找并且找不到对此或如何修复它的可靠解释。
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
这里是服务器:
c++ - C++:奇怪的“是私有的”错误
我从 g++ 中得到一个非常不寻常的错误,声称类型别名是私有的。经过数小时减少代码后,我得出了以下最小测试用例:
g++ 4.8.2 的错误是:
Clang 3.4 接受相同的代码。这是怎么回事,这是一个 g++ 错误吗?
执行以下任何操作都会阻止错误发生:
- 变成
Test
一个类,而不是一个模板类。 - 删除任何函数中的任何语句。
- 更改
TheCatDog::Dog::bark();
为CatDog::Dog::bark();
. - 删除
CrazyHouse
类并将其内容合并到Test
. - 删除
CatDog
类,将其内容合并到Test
并将TheCatDog
别名更改为指向Test
.
c++ - 禁用“包含在文件中”g++ 消息
我正在使用 g++ 开发一个 C++ 项目。我正在使用#pragma
消息来打印各种诊断消息(正在编译类的哪些部分等)。起初它很有用,但随着包含链开始增长,它失控了。
当我编译我的任何对象时,我保证会收到至少 3 条类似于以下内容的消息:
当我进行完整构建时,我会得到数百个。我想要打印实际的消息 (XnInterface.h:14...),而不是其余的。我真的不在乎它是从哪里包含在这种情况下的,这使得实际的警告很难被发现。
我发现我可以用 禁用最后两行-fno-diagnostics-show-carat
,但找不到不打印包含链的选项。
我不想将它们作为系统标头包含在内,-i/INCLUDE
因为这样会删除整个消息。是否可以只禁用包含链?g++ 手册页不是为深夜阅读而设计的,所以我承认我可能遗漏了一些东西。
谷歌没有帮助。我想不出一个可以返回甚至相关结果的搜索查询。
来自 XnInterface.h 的相关代码,fwiw:
而且,在相关的说明中,上帝保佑我让 Boost 不高兴。它吐得太厉害了,我不得不用更少的钱来抓住它。其中大部分是“在文件中包含...”
非常感谢任何和所有帮助!
c++ - Visual Studio 2012下奇怪的ifstream访问冲突
我有这段代码在使用 g++ 的 Linux 上工作:
其中三个点代表一些代码。在 g++ 和 Visual Studio (2012) 上,代码都可以编译。但是在 Visual Studio 中,第一行会引发访问冲突异常。这实际上发生在打开文件时,调试器将我重定向到do_always_noconv但我不明白这个问题。
包含文件名的字符串是有效的,并且程序试图打开的文件在 good 目录中,调试器在这个目录中工作。我猜问题不是来自文件本身,因为如果流无法打开它,那么我仍然可以输入下一行而不会出现访问冲突。
有没有人已经遇到过这个问题或有想法?再次使用 g++ 在 Linux 上运行没有任何问题。
谢谢你的帮助。
c++ - 如何获得有关旧异常规范的警告
我知道除其他外(如 auto_ptr),异常规范在 C++11 中已被弃用。
有没有办法使用以下代码从 g++ 4.8 获得警告?
我已经尝试过-Wall -pedantic -Wextra -Wdeprecated-declarations,但没有任何成功。