を使用したいのですが、削除するのが難しいテンプレート化された関数が名前空間に定義されているためstd::sort
、コンパイルがエラーで失敗します。どちらを使用するかは気にしませんが、コンパイル時にどちらかをなくすにはどうすればよいですか?C2668: std::swap: ambiguous call to overloaded function
swap()
swap
sort()
my::swap
は と同じ名前空間にあるためあいまいであることは理解しています。どのバージョンのが使用されるmy::Obj
かは気にしません。swap
名前空間の衝突を克服する必要があります。これは私が所有していない非常に大きなコード ベースの一部であるため、私のコードにローカルであり、おそらく名前空間にとどまるmy::Obj
ことができるソリューションを望んでいます。my::swap
my
namespace my
{
template<class T> void swap(T a, T b)
{
}
struct Obj
{
};
void doSortStuff()
{
std::vector<Obj> arr;
std::sort(arr.begin(), arr.end());
}
};