作者Linvail (平衡)
看板Programming
标题Re: [STL ] hash_map和VC 2005的问题
时间Thu Nov 16 16:39:51 2006
※ 引述《[email protected] (汀)》之铭言:
: ※ 引述《[email protected] (平衡)》之铭言:
: > 我的环境是VC++ 2005 Express 和MS Platform SDK for Windows Server 2003 R2
: 这个环境我没有用过。
: > 我可以正常编译和使用<vector> <algorithm>,但是include <hash_map>就会出现
: 你的标题有问题,
: hash_map 是你用的 library 自行制作的 extensions,
: 并不包含在 STL 里面喔,
: 所以标 STL 是不适当的。
根据我手边的MSDN,hash_map和map, set, multiset都是STL里面的associative
container,不过它有说hash_xxx是not officially part of STL standard
同样的code我用VS 2005 Team Suite可以成功无误的编译,所以我应该会换个环境.....
不过对於在Express+Platform SDK这种免费的环境上居然会出错,实在有点堵烂XDD
你的资讯还是让我受益良多 多谢了
: > 一大堆错误,错误都是出现在非我写的那些档案上
: > 请问有没有人能协助解决问题呢?
: > 例如我编译以下MSDN提供的范例:
: > 在这些档案上都有错误 xhash, hash_map, xlocinfo.h
: > 举几个在xhash上的错误:
: > C:\Program Files\Microsoft Visual Studio 8\VC\include\xhash(41) : error
: > C2143: 语法错误 : 遗漏 ';' (在 ''template<'' 之前)
: > C:\Program Files\Microsoft Visual Studio 8\VC\include\xhash(41) : error
: > C4430: 遗漏型别规范 - 假设为 int。注意: C++ 不支援 default-int
: 光是这样看很像是你的 header file 内容有问题,
: 也有可能是因为你前面那个 #define 害 xhash 里面的内容出问题,
: 建议你直接打开 xhash 这个档案检查看看是怎麽回事。
: 仅仅从错误讯息来看,
: C2143 所说的可能是前面的 class 定义式结尾少了分号,
: 或是前面的 variable/function 定义或宣告结尾少了分号什麽的;
: 而 C4430 这个错误是来自於 C 的写法,
: 在 C 不写出 type 的话预设就是 int type,
: 在 C++ 一定要写明才行。
恩 我尝试将专案预设值改成C,不过问题还是一样
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.79.108