Cat*_*kul 3 c++ windows winapi stl visual-studio-2008
在试图在VS2008项目中使用std::select1st时<functional>,我发现它是由_HAS_TRADITIONAL_STL警卫提供的.
是否有一个原因?
_HAS_TRADITIONAL_STL在包括之前简单定义是否安全<functional>?
std::select1st默认情况下不存在的原因是它不是C++标准库的一部分.它是标准模板库(STL)的一部分,未被C++标准采用.
我在MSDN上找不到任何文档_HAS_TRADITIONAL_STL,它似乎没有在随Visual Studio 2010发布的标准库版本中使用.它可能由Dinkumware在将它提供给Microsoft时包含在库中.
话虽如此,如果你想使用它可能是安全的std::select1st.请注意,使用该标志启用的任何内容都是特定于实现和不可移植的(甚至可能在Visual C++版本之间更改).您可能最好实现自己的select1st功能:
template <typename PairT>
struct select1st : public std::unary_function<PairT, typename PairT::first_type>
{
typename PairT::first_type operator()(const PairT& a) { return a.first; }
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
681 次 |
| 最近记录: |