【发布时间】:2015-07-27 02:16:18
【问题描述】:
我有一个用 C++ 编写的套接字程序服务器代码。
我在使用 g++ 编译器(操作系统:Unix AIX)编译时遇到以下错误。使用 cc 编译器(操作系统:Unix Sun OS)成功编译了相同的代码。请告诉我如何解决它。
-
代码sn-p
enum sockStates { inopen = ios::in, outopen = ios::out, open = ios::in | ios::out, }; -
错误
g++ -gxcoff -maix64 -shared -fpic -fpermissive -w -libstd=c++11ox -I/devt/flex/java/include -I/devt/flex/java/include/aix -I/tmp/ribscomp/server/include -c -o server.o server.cc ssocket.h:721:26: error: calls to overloaded operators cannot appear in a constant-expression open = ios::in | ios::out, ^ -
g++ 版本
g++ -v
使用内置规范。
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/opt/freeware/libexec/gcc/powerpc-ibm-aix7.1.0.0/4.8.2/lto-wrapper
Target: powerpc-ibm-aix7.1.0.0
Configured with: ../gcc-4.8.2/configure --with-as=/usr/bin/as --with-ld=/usr/bin/ld --enable-languages=c,c++,fortran --prefix=/opt/freeware --mandir=/opt/freeware/man --infodir=/opt/freeware/info --enable-version-specific-runtime-libs --disable-nls --enable-decimal-float=dpd --host=powerpc-ibm-aix7.1.0.0
Thread model: aix
gcc version 4.8.2 (GCC)
【问题讨论】:
-
@JoachimPileborg,问题中显示的
|运算符由标准库提供