Форум
C/C++
Тема
Как правильно задавать вопросы
B
I
abc
U
X
3
X
3
H1
H2
H3
H4
H5
H6
Asm
C/C++
C#
Erlang
Haskell
IDL
Java
Lisp
MSIL
Nemerle
ObjC
OCaml
Pascal
Perl
PHP
Prolog
Python
Ruby
Rust
SQL
VB
Здравствуйте, Andrew S, Вы писали: P>>>>Не догоняю, зачем здесь using? AS>>>Обычный lifehack. AS>>>В результате код одинаково работоспособен в любом из кейзов: как при наличии мембера swap, внешней функции swap в неймспейсе типа, перегрузки std::swap, стандартной реализации std::swap, причем всегда автоматически выбирается наиболее специализированный вариант реализации. P>>Дык P>>[q] P>>// swap должен быть перегружен для X и не кидать исключения. Иначе получим рекурсию. А если перегружен - то не получим ошибку, за исключением выше. P>>[/q] P>>же!!111 :???: AS>Если речь все про зачем using - чтобы не задумываться о том, откуда брать реализацию, за нас это решит ADL. AS>Ровно так же корректно, если в классе есть нестатический мембер swap, было бы написать swap(other), но в оригинальном варианте был вызов внешней (ну или статической) функции swap, что я и оставил. В целом, это скорее просто моя личная привычка давать возможность не перегружать стандарный swap, а написать свой в неймспейсе класса - не всегда имеется возможность или желание сделать такую перегрузку. В реализации оператора = оно, наверное, особо смысла не несет, по крайней мере, сильно меньший, чем просто в клиенском коде.
Теги:
Введите теги разделенные пробелами. Обрамляйте в кавычки словосочетания с пробелами внутри, например:
"Visual Studio" .NET
Имя, пароль:
Загрузить
Нравится наш сайт?
Помогите его развитию!
Отключить смайлики
Получать ответы по e-mail
Проверить правописание
Параметры проверки …