《C++程序设计原理与实践》中的那个子文件为什么会导致编译出错

《C++程序设计原理与实践》中的那个头文件为什么会导致编译出错?
#include <unordered_map>
#include <utility>
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
#include "../../_h_file_/std_lib_facilities.h"

int main()
{
typedef unordered_map< string, int > Com_rank;

Com_rank cr1;
cr1.insert( make_pair( "Google", 5 ) );
cr1.insert( make_pair( "Apple", 3 ) );
cr1.insert( make_pair( "Microsoft", 1 ) );

typedef unordered_map< string, int >::iterator Iter;
for( Iter p = cr1.begin(); p != cr1.end(); ++p )
cout << p->first << ", " << p->second << endl;

system( "pause" );
//keep_window_open();
return 0;
}
那个头文件可以在这里下载:
http://www.stroustrup.com/Programming/std_lib_facilities.h

现在这样是可以通过编译的,但是如果把那个头文件放到第一行就会编译出错。现在这个状态即使去掉那个头文件可以可以的。

错误提示:
错误 1 error C2977: “stdext::hash_map”: 模板 参数太多 d:\software\program\microsoft visual studio 11.0\vc\include\unordered_map 286 1 21.1.try.461.01.unordered_map
错误 2 error C2133: “cr1”: 未知的大小 d:\project\mvse2012\programming\21.1.try.461.01.unordered_map\21.1.try.461.01.unordered_map\unordered_map.cpp 14 1 21.1.try.461.01.unordered_map
错误 3 error C2512: “stdext::hash_map”: 没有合适的默认构造函数可用 d:\project\mvse2012\programming\21.1.try.461.01.unordered_map\21.1.try.461.01.unordered_map\unordered_map.cpp 14 1 21.1.try.461.01.unordered_map
错误 4 error C2663: “std::_Hash<_Traits>::insert”: 4 个重载没有“this”指针的合法转换 d:\project\mvse2012\programming\21.1.try.461.01.unordered_map\21.1.try.461.01.unordered_map\unordered_map.cpp 15 1 21.1.try.461.01.unordered_map
错误 5 error C2663: “std::_Hash<_Traits>::insert”: 4 个重载没有“this”指针的合法转换 d:\project\mvse2012\programming\21.1.try.461.01.unordered_map\21.1.try.461.01.unordered_map\unordered_map.cpp 16 1 21.1.try.461.01.unordered_map
错误 6 error C2663: “std::_Hash<_Traits>::insert”: 4 个重载没有“this”指针的合法转换 d:\project\mvse2012\programming\21.1.try.461.01.unordered_map\21.1.try.461.01.unordered_map\unordered_map.cpp 17 1 21.1.try.461.01.unordered_map
错误 7 error C2663: “std::_Hash<_Traits>::begin”: 4 个重载没有“this”指针的合法转换 d:\project\mvse2012\programming\21.1.try.461.01.unordered_map\21.1.try.461.01.unordered_map\unordered_map.cpp 20 1 21.1.try.461.01.unordered_map
错误 8 error C2663: “std::_Hash<_Traits>::end”: 4 个重载没有“this”指针的合法转换 d:\project\mvse2012\programming\21.1.try.461.01.unordered_map\21.1.try.461.01.unordered_map\unordered_map.cpp 20 1 21.1.try.461.01.unordered_map