问题标签 [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 回答
88 浏览

c++ - 从嵌套在模板中的类派生时的编译问题

我正在为数独游戏编写模板类,其中模板参数定义了行和列的大小。我正在使用启用 C++11 的 g++-4.8。

我有一个我解决的编译问题,但我想了解为什么它没有按预期工作:

我的 RowIteratorImpl 类派生自 VirtualLineIteratorImpl,但我无法访问其字段 virtualLineIdx 和 cellInVirtualLineIdx,尽管这应该是可能的:

编译器生成以下消息:

mivSudoku.h:在成员函数 'virtual size_t mivTSudoku::RowIteratorImpl::getCellIdx() const'中:mivSudoku.h:85:39: 错误:'virtualLineIdx' 未在此范围内声明 return mivTSudoku::getCellIdxInRow(virtualLineIdx, cellInVirtualLineIdx );

这是整个类定义:

有人可以向我解释为什么吗?

0 投票
1 回答
1670 浏览

floating-point - 负零的平方根

在 g++ 版本 4.8.0(32 位 mingw)下,-0.0(二进制表示形式 0x8000000000000000)的平方根为 NAN。但我可以发誓早期版本(我不确定是哪个,但我最后一次运行完整的测试套件)返回的只是 0.0,这对我来说似乎更明智。

这是正确的吗?C++ 标准中的某些内容是否发生了变化,或者这是 g++ 的变化?

0 投票
1 回答
2231 浏览

linux - 在 ubuntu 13.04 中安装 g++ 4.8

我用了:

在 ubuntu 13.04 中安装 g++4.8。但是当我想编译一个c++程序时,例如 world.cpp 我写了 g++ world.cpp 我收到了:

我是 linux 新手。我不能用这个解决我的问题

0 投票
2 回答
811 浏览

c++ - 从具有默认参数的类模板继承

我创建了一个看起来像这样的类。关键是它有一个主模板参数和一个带有默认值的模板基类。还有一个模板化的复制构造函数......

我收到了这个令人讨厌的模糊编译器错误,并且无法发现我的错误......所以我的问题是 - 到底出了什么问题?我正在使用 gcc 4.8.1。

编辑:找到答案,干杯:-)即使我仍然认为它应该编译......这编译......

0 投票
4 回答
5985 浏览

c++ - 小牛队的 C++ 11 发生了什么奇怪的事情?

我正在使用通过 MacPorts 安装的 gcc 4.8,旧的 C++11 代码将不再编译

如果我使用没有 -std=c++11 标志的编译器,它可以很好地使用这个测试代码

但是在 Mavericks 升级后,我得到以下编译错误:

有谁知道可能导致此问题的原因?我很感激任何帮助

0 投票
1 回答
548 浏览

c++ - Can't insert a number into a char16_t-based custom C++ ostream/streambuf

I have written a custom std::basic_streambuf and std::basic_ostream because I want an output stream that I can get a JNI string from in a manner similar to how you can call std::ostringstream::str(). These classes are quite simple.

In addition, I have made four overloads of operator<<, all in the same namespace:

The implementation of jni_utf16_streambuf::overflow(int_type) is trivial. It just doubles the buffer width, puts the requested character, and sets the base, put, and end pointers correctly. It is tested and I am quite sure it works.

The jni_utf16_ostream works fine inserting unicode characters. For example, this works fine and results in the stream containing "hello, world":

My problem is as soon as I try to insert an integer value, the stream's bad bit gets set, for example:

I don't understand why this is happening! Is there some other method on std::basic_streambuf I need to be implementing????

0 投票
1 回答
167 浏览

c++ - GNU 4.8.1 任何 C++ 编译在系统更新后崩溃

最近我将我的操作系统更新到了 Xubuntu 13.10。现在任何使用 GNU 4.8.1 编译器编译的 C++ 都会崩溃:

我已经从源代码中删除了任何东西,并且只使用了一个空的 main 函数:

故障存在。我尝试了 Xubuntu 13.10 32 位和 64 位版本。两者都存在故障。GDB 报告:

编辑:

同时我发现问题出在我的单例实现上。此实现在与 GCC 4.8 和 Xubuntu 13.04 握手时成功地与 MinGW-64 一起工作:

如果我在具体的单例实现中调用 getInstance ,则会在 std::call_once 函数调用上发生崩溃。

我的想法不多了。有谁知道出了什么问题?谢谢。

0 投票
1 回答
9372 浏览

c++ - 范围枚举的详细类型说明符不得使用“类”关键字

我有以下枚举规范:

g++ 4.8.1 给出以下错误:

警告:作用域枚举的详细类型说明符不得使用“类”关键字

这是什么原因造成的?

0 投票
3 回答
610 浏览

c++ - 是什么阻止 g++ 消除运行时未使用的临时 std::array ?

该函数foo()创建一个临时数组来检查大小是否符合程序员的预期。使用-O1或更高版本的 g++ 计算出assert不会失败,并且__assert_fail从生成的代码中删除了对的调用。但是 g++ 仍然会生成代码来首先构造然后破坏现在未使用的数组。

另一方面,clang 删除了除 return 语句之外的所有代码。

只是 g++ 运气不好还是有什么不同的原因?

0 投票
0 回答
465 浏览

winapi - 较新版本的 Cygwin/gcc 不会选择 _WIN32 分支,但旧版本会

我已经接管了现有 FPGA 验证系统的使用。它使用 Opal Kelly 软件 (Windows),该软件提供 C++ 编程 API 以在 FPGA 上执行 I/O。该系统在 Windows 机器上运行,但通过 Cygwin 终端启动。当我想运行模拟时,我使用带有开关“-hdl”的命令行调用脚本,以在 Modelsim 中使用 Opal Kelly 模拟库;当我想在硬件中运行测试时,我通过在命令行参数中使用“-lab”开关来编译一组不同的 Opal Kelly 提供的源文件。

我们需要更换控制 FPGA 的计算机,而在旧机器上运行的相同代码不再在新机器上运行。基本上,我需要选择加载 windows DLL 的代码分支:

我希望执行第一个分支(_WIN32)。旧系统(Cygwin v1.5.25 , g++ v3.4.4 )执行第一个分支,即使 _WIN32 变量不在我通过使用带有 g++ 的 -dM -E 开关获得的列表中。新系统(Cygwin v1.7.27,g++ v4.8.2)不执行这个分支。

有谁知道会破坏此功能的 Cygwin 或 g++ 更新?我可以通过添加来解决这个问题

到第一行,但随后我正在修改在旧版本下运行良好的供应商代码。我对 Cygwin 和 g++ 非常缺乏经验,浏览常见问题解答并没有发现任何明显的问题。