type_infoクラスがstd名前空間だった?

c++にてtypeid演算子からtype_infoクラスの参照を受け取る時、何故かヘッダが不要で、かつstd::type_infoといった風に、std名前空間だった。
何でだろう、cygwingccだからか?(g++ではなく、gccに-lstdc++としている)

#include <iostream>

class CBase
{
public:
	virtual ~CBase(){}		// スーパークラスは仮想デストラクタを宣言しておく
};

class CSub1 : public CBase
{
};

class CSub2 : public CBase
{
};

int main()
{
	CBase base_obj;
	CSub1 sub1_obj;
	CSub2 sub2_obj;
	
	// ↓ここの3つのどれか1つだけを有効にして実行してみる
//	CBase *p = &base_obj;
//	CBase *p = &sub1_obj;
	CBase *p = &sub2_obj;

	const std::type_info& info = typeid( *p );  // 実行時型情報を取得
	if( info == typeid( CBase ) ){
		std::cout << "CBase" << std::endl;
	}else if( info == typeid( CSub1 ) ){
		std::cout << "CSub1" << std::endl;
	}else if( info == typeid( CSub2 ) ){
		std::cout << "CSub2" << std::endl;
	}
	
	return 0;
}

http://www.geocities.jp/ky_webid/cpp/language/023.html より。