在哪里下载C++ STLsource代码.h和.cpp文件?

Amu*_*umu 4 c++ stl

我从http://www.sgi.com/tech/stl/download.html下载了STL源代码,但它只有函数声明的.h.我在哪里可以下载.cpp文件来阅读实际的实现?

例如,在stl_multimap.h或stl_map.h中,它具有:

template <class _Key, class _Tp, class _Compare, class _Alloc>
inline void swap(multimap<_Key,_Tp,_Compare,_Alloc>& __x, 
                 multimap<_Key,_Tp,_Compare,_Alloc>& __y) {
  __x.swap(__y);
}
Run Code Online (Sandbox Code Playgroud)

我想知道交换的实际实现

__x.swap(__y);
Run Code Online (Sandbox Code Playgroud)

我没有看到swap的实际代码在哪里.在这里,它只是自称.

wkl*_*wkl 5

.h 文件包含实现。该页面上的许多标题只是其他标题的包装器或提供 typedef,但是如果您查看类似 的文件stl_set.h,您将看到它具有set该类的所有函数定义。

甚至页面本身也声明它是一个仅标头的库,这意味着实现包含在标头中。

  • @Amumu:你误会了。实现位于 .h 文件中。没有一组特定于编译器的 .cpp 文件或包含实现的内容。整个实现都在头文件中。所有的。你不需要别的。 (2认同)

Dit*_*tty 5

C++库的实现因不同的编译器/系统而异.如果您使用GCC/G ++作为编译器,可以从http://gcc.gnu.org/libstdc++/下载源代码.

或者你可以在这里匿名检查源代码:svn checkout svn://gcc.gnu.org/svn/gcc/trunk/libstdc++v3 libstdc ++