그것은 아마 질문,하지만 난 VC 2012이 코드를 작동하게하는 방법에 관심이되었다VC++ 2012 : "인수 별 조회를 사용하여 발견되었습니다"해결 방법?
#include <vector>
namespace ns {
struct Obj { };
template <class T> void swap(T& a, T& b) { }
}
int main(int argc, char* argv[])
{
std::vector<ns::Obj> v;
std::vector<ns::Obj>().swap(v); <-'std::swap' : ambiguous call to overloaded function
return 0;
}
내가이 NS 네임 스페이스를 사용해야하고, 변경할 수 없습니다. 그것은 STL없이 작동 할 수 있어야하며 자체 스왑 (swap)을 가지고 있습니다. 어떻게 제대로 STL과 함께 사용 하는가?
사실 g ++과 clang ++는'ns :: swap '을 전혀 호출하지 않기 때문에 MSVC의 버그처럼 보입니다. 나는 가능한 또 다른 해결책을 게시하려고 노력할 것이다. –