我只是在玩新的 VS 2012,我可能对新的 C++11 有问题。当我在项目设置中将平台工具集设置为 VS2010 (v100) 时,这种代码可以完美运行。
。H:
typedef std::multimap<unsigned, unsigned> SizeMap;
typedef std::map<unsigned, unsigned> OffsetMap;
private:
inline void _RemoveBlockL(SizeMap::iterator sizeI);
inline void _RemoveBlockL(OffsetMap::iterator offsetI);
.cpp:
inline void Foo::_RemoveBlockL(SizeMap::iterator sizeI)
{
// impementation
}
inline void Foo::_RemoveBlockL(OffsetMap::iterator offsetI)
{
// impementation
}
但是当我为 VS2012 (v110) 更改它时,我会收到以下错误:
Error 61 error C2535: 'void
Boo::system::Foo::_RemoveBlockL(std::_Tree_iterator<_Mytree>)' : member function already
defined or declared D:\_work\wp-test\boo\system\foo.h
为什么重载在 VC++11 中不起作用?