История изменений
Исправление utf8nowhere, (текущая версия) :
Наглядный пример того, в чём разница между using-declaration (using std::ranges::swap
) и using-directive (using namespace std::ranges
).
Второй начинает «работать» только когда поиск выбирается в глобальный неймспейс. И тогда находится и ::swap
, и ::std::ranges::swap
.
И происходит что-то вроде
namespace N
{
float f = 0;
}
void f()
{
using namespace N;
f();
}
<source>:9:5: error: reference to 'f' is ambiguous
f();
^
<source>:6:6: note: candidate found by name lookup is 'f'
void f()
^
<source>:3:11: note: candidate found by name lookup is 'N::f'
float f = 0;
^
Исправление utf8nowhere, :
Наглядный пример того, в чём разница между using-declaration (using std::ranges::swap
) и using-directive (using namespace std::ranges
).
Второй начинает «работать» только когда лукап выбирается в глобальный неймспейс. И тогда находится и ::swap
, и ::std::ranges::swap
.
И происходит что-то вроде
namespace N
{
float f = 0;
}
void f()
{
using namespace N;
f();
}
<source>:9:5: error: reference to 'f' is ambiguous
f();
^
<source>:6:6: note: candidate found by name lookup is 'f'
void f()
^
<source>:3:11: note: candidate found by name lookup is 'N::f'
float f = 0;
^
Исправление utf8nowhere, :
Наглядный пример того, в чём разница между using-declaration (using std::ranges::swap
) и using-directive (using namespace std::ranges
).
Второй начинает «работать» только когда лукап выбирается в глобальный неймспейс. И тогда находится и ::swap
, и ::std::ranges::swap
.
И происходит что-то вроде
namespace N
{
float f = 0;
}
void f()
{
using namespace N;
f();
}
<source>:9:5: error: reference to 'f' is ambiguous
f();
^
<source>:6:6: note: candidate found by name lookup is 'f'
void f()
^
<source>:3:11: note: candidate found by name lookup is 'N::f'
float f = 0;
^
Исходная версия utf8nowhere, :
Наглядный пример того, в чём разница между using-declaration (using std::ranges::swap
) и using-directive (using namespace std::ranges
).
Второй начинает «работать» только когда лукап выбирается в глобальный неймспейс. И тогда находит там и ::swap
, и ::std::ranges::swap
.
И происходит что-то вроде
namespace N
{
float f = 0;
}
void f()
{
using namespace N;
f();
}
<source>:9:5: error: reference to 'f' is ambiguous
f();
^
<source>:6:6: note: candidate found by name lookup is 'f'
void f()
^
<source>:3:11: note: candidate found by name lookup is 'N::f'
float f = 0;
^