Результаты поиска по запросу "argument-dependent-lookup"

3 ответа

Оператор перегрузки >> для std :: pair <int, int>

1 ответ

Можно ли взять адрес функции ADL?

Можно ли взять адрес функции, которая будет найдена через ADL? Например: template<class T> void (*get_swap())(T &, T &) { return & _________; // how do I take the address of T's swap() function? } int main() { typedef some_type T; get_swap<T>(); }

3 ответа

Почему ADL не работает с Boost.Range?

ТОП публикаций

2 ответа

Почему этот вызов swap () неоднозначен?

Следующая программа

1 ответ

Сокрытие имени с помощью объявления

5 ответов

 класс - ты понимаешь о чем я :)

1 ответ

необходимо, чтобы избежать рекурсивного вызова обмена участником. Обмен участником отключает ADL.

емя некоторой практики C ++ я пытался выучить и принять идиому копирования-обмена, следуя этому подробному объяснению по этому вопросу:идиома копирования-обмена [https://stackoverflow.com/q/3279543/356440]. Но я нашел код, который никогда не ...

2 ответа

Это определенно проясняет ситуацию. Я бы, наверное, никогда не подошел бы к этому самому анализу стандарта. Я думаю, что понял, спасибо!

отрим простой пример: template <class T> struct tag { }; int main() { auto foo = [](auto x) -> decltype(bar(x)) { return {}; }; tag<int> bar(tag<int>); bar(tag<int>{}); // <- compiles OK foo(tag<int>{}); // 'bar' was not declared in this scope ...

2 ответа

@UncleBens: KitsuneYMG может ожидать, что будет управлять kitsune_ymb. Никто, кроме реализации, не может ожидать, чтобы контролировать стандартный. Другой ответ не добавляет объявлений в пространство имен std и не работает с вложенными кортежами и другими случаями.

я есть набор шаблонов / функций, которые позволяют мне печатать кортеж / пару, предполагая, что каждый тип в кортеже / паре имеетoperator<< определено для этого. К сожалению, из-за 17.4.3.1, это незаконно, чтобы добавить мойoperator<< перегрузки ...

1 ответ

, правильно?

ющий очень простой код не скомпилируется #include <vector> #include <string> namespace Foobar { struct Test { std::string f; std::uint16_t uuid; }; } bool operator==(const Foobar::Test& lhs, const Foobar::Test& rhs){ return lhs.f == rhs.f && ...