我已经搜索了这个论坛并找到了同样的问题,但它没有解决,甚至没有提供解决我的问题的任何线索。我正在做一个我正在使用模板的项目。 首先我使用像这样的C ++地图
typedef map<int ,cal_point*> p_mMap2D;
它完美无缺。然后我尝试使用Qt制作GUI,但是当我使用“QMap”时,它给出了一个错误
typedef QMap<int ,cal_point*> p_mMap2D;
错误25错误C2632:'char'后跟'char'是非法的C:\ Qt \ 4.7.4 \ include \ QtCore \ qglobal.h 897
然后我尝试使用之前使用的地图,但仍然是错误。我搜索网但没有得到任何相关的线索。如果我不使用Qt那么它的工作完美。
来自qtglobal.h的代码
QT_BEGIN_INCLUDE_NAMESPACE
typedef unsigned char uchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
QT_END_INCLUDE_NAMESPACE
答案 0 :(得分:1)
在/src/corelib/global/qglobal.h内.Qt 4.8.5包含以下字符串:
# define QT_BEGIN_INCLUDE_NAMESPACE }
# define QT_END_INCLUDE_NAMESPACE namespace QT_NAMESPACE {
当预处理器扩展此宏时,例如QT_NAMESPACE = qt结果将为:
}
typedef unsigned char uchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
namespace qt {
看起来像定义错误QT_BEGIN_INCLUDE_NAMESPACE和QT_END_INCLUDE_NAMESPACE。
答案 1 :(得分:0)
很难说,因为你没有包含cal_point*
的定义,但问题在于它被定义的位置或这些行中的某个位置。检查一下。它可能在外部文件中使其中断,依此类推。