如何在MFC中使用valarray?

sleepingboy 2003-02-22 03:04:50
一般C++类的头文件这样写,却报出一堆错

#pragma once
#include <valarray>

using namespace std;

class A
{
public:
A(void);
~A(void);

valarray<int> VA;
};
...全文
250 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fzr417 2010-06-15
  • 打赏
  • 举报
回复
解决方法

1)在包含头文件valarray时使用下面的格式
#undef min
#undef max
include <valarray>
using namespace std;

1)在包含头文件valarray时使用下面的格式
#undef min
#undef max
include <valarray>
using namespace std;

2) 如果要保留min,max宏,前后夹击
#pragma push_macro("min")
#pragma push_macro("max")
#undef min
#undef max
#include <valarray>
using namespace std;
#pragma pop_macro("min")
#pragma pop_macro("max")
  • 打赏
  • 举报
回复
.net我没有使用过,但是我想你用的是中文版吧,有时有可能是汉化时出了问题的,我用vc6。0中文版时,有时也出现许多恶心的问题,但是用英文版就基本上没有什么问题的。
像编译器只类的还是用英文版的比较好的。
smile121 2003-07-05
  • 打赏
  • 举报
回复
楼主好,我遇到了相同的情况,问题解决了吗?
sleepingboy 2003-02-23
  • 打赏
  • 举报
回复
只要是windows程序就不能用valarray

如何解决?
sleepingboy 2003-02-22
  • 打赏
  • 举报
回复
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(309) : warning C4003: “min”宏的实参不足
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(318) : warning C4003: “max”宏的实参不足
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(309) : error C2059: 语法错误 : “函数样式转换”
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(420) : 参见对正在编译的类模板实例化“std::valarray<_Ty>”的引用
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(309) : error C2334: “:”的前面有意外标记;跳过明显的函数体
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2143: 语法错误 : 缺少“)”(在“}”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2143: 语法错误 : 缺少“}”(在“)”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2059: 语法错误 : “)”
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2238: 意外的标记位于“;”之前
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(318) : error C2146: 语法错误 : 缺少“;”(在标识符“_Ty”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(309) : error C2629: 意外的“size_t (”
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(1118) : 参见对正在编译的类模板实例化“std::valarray<_Ty>”的引用
with
[
_Ty=size_t
]
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(309) : error C2334: “:”的前面有意外标记;跳过明显的函数体
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2143: 语法错误 : 缺少“)”(在“}”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2143: 语法错误 : 缺少“}”(在“)”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2059: 语法错误 : “)”
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(318) : error C2334: “:”的前面有意外标记;跳过明显的函数体
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(325) : error C2143: 语法错误 : 缺少“)”(在“}”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(325) : error C2143: 语法错误 : 缺少“}”(在“)”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(325) : error C2059: 语法错误 : “)”
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(325) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(325) : error C2238: 意外的标记位于“;”之前
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(327) : error C2146: 语法错误 : 缺少“;”(在标识符“valarray”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(309) : error C2629: 意外的“std::_Bool (”
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(1327) : 参见对正在编译的类模板实例化“std::valarray<_Ty>”的引用
with
[
_Ty=std::_Bool
]
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(1329) : 参见对正在编译的类模板实例化“std::mask_array<_Ty>”的引用
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(309) : error C2334: “:”的前面有意外标记;跳过明显的函数体
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2143: 语法错误 : 缺少“)”(在“}”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2143: 语法错误 : 缺少“}”(在“)”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2059: 语法错误 : “)”
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2238: 意外的标记位于“;”之前
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(318) : error C2146: 语法错误 : 缺少“;”(在标识符“_Ty”的前面)
RSTable.cpp
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(309) : warning C4003: “min”宏的实参不足
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(318) : warning C4003: “max”宏的实参不足
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(309) : error C2059: 语法错误 : “函数样式转换”
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(420) : 参见对正在编译的类模板实例化“std::valarray<_Ty>”的引用
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(309) : error C2334: “:”的前面有意外标记;跳过明显的函数体
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2143: 语法错误 : 缺少“)”(在“}”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2143: 语法错误 : 缺少“}”(在“)”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2059: 语法错误 : “)”
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2238: 意外的标记位于“;”之前
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(318) : error C2146: 语法错误 : 缺少“;”(在标识符“_Ty”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(309) : error C2629: 意外的“size_t (”
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(1118) : 参见对正在编译的类模板实例化“std::valarray<_Ty>”的引用
with
[
_Ty=size_t
]
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(309) : error C2334: “:”的前面有意外标记;跳过明显的函数体
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2143: 语法错误 : 缺少“)”(在“}”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2143: 语法错误 : 缺少“}”(在“)”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(316) : error C2059: 语法错误 : “)”
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(318) : error C2334: “:”的前面有意外标记;跳过明显的函数体
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(325) : error C2143: 语法错误 : 缺少“)”(在“}”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(325) : error C2143: 语法错误 : 缺少“}”(在“)”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(325) : error C2059: 语法错误 : “)”
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(325) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(325) : error C2238: 意外的标记位于“;”之前
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(327) : error C2146: 语法错误 : 缺少“;”(在标识符“valarray”的前面)
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(309) : error C2629: 意外的“std::_Bool (”
f:\Microsoft Visual Studio .NET\Vc7\include\valarray(1327) : 参见对正在编译的类模板实例化“std::valarray<_Ty>”的引用
with
[
_Ty=std::_Bool
]
f:\Microsoft Visual Studio .NET\Vc7\include\valarray)
sleepingboy 2003-02-22
  • 打赏
  • 举报
回复
明白了

又是vc.net的bug
qhgary 2003-02-22
  • 打赏
  • 举报
回复
没有问题,我试过了,我这里通过vc6
晨曦2003 2003-02-22
  • 打赏
  • 举报
回复
出错信息呢?
还有源代码?

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧