Информация об изменениях

Сообщение Re[42]: Они сделали дерьмо опять от 02.07.2020 18:51

Изменено 02.07.2020 18:52 boomer

Re[42]: Они сделали дерьмо опять
Здравствуйте, night beast, Вы писали:

B>>Если предположить, что swap — шаблонная функция, то вот так:


B>>
B>>template<typename T>
B>>void foo(T& x, T& y)
B>>{
B>>  swap(x, y);
B>>}
B>>


NB>теперь предположите, что у меня в функции foo не стоит using std::swap;

NB>полезете глобальное пространство зачищать?

Так оно и так только глобальное.

B>>Если же предположить, что должна вызываться функция, переопределенная для типа T — то точно так же. Просто эта функция будет переопределена вот так:


B>>
B>>void swap(company_project_type& x, company_project_type& y)
B>>


NB>то есть мы префиксы используем только для типов?

NB>что так?

B>>Не то?


NB>а если у меня в "пространстве" company_project_type swap шаблонный?


Тогда так:

[ccode]
void swap(company_project_type& x, company_project_type& y)
{
company_project_swap(x, y);
}
[/code]
Re[42]: Они сделали дерьмо опять
Здравствуйте, night beast, Вы писали:

B>>Если предположить, что swap — шаблонная функция, то вот так:


B>>
B>>template<typename T>
B>>void foo(T& x, T& y)
B>>{
B>>  swap(x, y);
B>>}
B>>


NB>теперь предположите, что у меня в функции foo не стоит using std::swap;

NB>полезете глобальное пространство зачищать?

Так оно и так только глобальное.

B>>Если же предположить, что должна вызываться функция, переопределенная для типа T — то точно так же. Просто эта функция будет переопределена вот так:


B>>
B>>void swap(company_project_type& x, company_project_type& y)
B>>


NB>то есть мы префиксы используем только для типов?

NB>что так?

Потому что это не "наша" функция, а переопределение глобальной.

B>>Не то?


NB>а если у меня в "пространстве" company_project_type swap шаблонный?


Тогда так:

[ccode]
void swap(company_project_type& x, company_project_type& y)
{
company_project_swap(x, y);
}
[/code]