Вопросы по теме 'argument-dependent-lookup'
3.4.2 Поиск имени в зависимости от аргумента из n3290 Draft
Пункт из проекта ISO n3290, раздел 3.4.2, пункт 1:
Когда постфиксное-выражение в вызове функции является неполным идентификатором , можно искать другие пространства имен, не учитываемые при обычном неквалифицированном поиске, и в этих...
393 просмотров
schedule
11.06.2023
Где я должен определить оператор ›› для моей специализации std :: pair?
Рассмотрим следующую программу:
#include <iostream>
#include <iterator>
#include <vector>
#include <utility>
using namespace std; //just for convenience, illustration only
typedef pair<int, int> point; //this is my...
585 просмотров
schedule
30.10.2022
Поиск в зависимости от аргумента, когда он выполняется, что ищется и как вы можете принудительно (или предотвратить) его?
У меня возникли проблемы с пониманием правил поиска, зависящего от аргумента (Koenig).
Рассмотрим код ниже:
#include <iostream>
using namespace std;
namespace adl
{
struct Test { };
void foo1(Test const &) { cout <<...
391 просмотров
schedule
15.02.2024
Работает ли ADL с именованными лямбда-выражениями?
Скажем, у меня есть класс и именованная лямбда в одном пространстве имен.
namespace bla {
class X { /* ... */ };
static auto lambda = []( X param ){ /* ... */ };
}
Эта лямбда почти эквивалентна встроенной функции. Но могу ли я...
193 просмотров
schedule
12.03.2023
Почему компилятор не может найти эту перегрузку оператора?
Я пытаюсь написать перегрузки operator<< для конкретных экземпляров контейнеров стандартной библиотеки, которые будут храниться в boost::variant . Вот небольшой пример, иллюстрирующий проблему:
#include <iostream>
#include...
1808 просмотров
schedule
25.03.2023
Почему здесь не работает поиск Кенинга?
Поиск, зависящий от аргумента, говорит:
Для аргументов типа класса (включая объединение) набор состоит из... а) самого класса б)...
Тогда почему printX не может найти X?
#include<iostream>
using namespace std;
class A {...
73 просмотров
schedule
21.03.2023
зачем перемещать swap_impl в boost::swap в отдельное пространство имен?
Я изучаю реализацию boost:: swap:
namespace boost_swap_impl
{
template<class T>
BOOST_GPU_ENABLED
void swap_impl(T& left, T& right)
{
using namespace std;//use std::swap if argument dependent lookup fails...
152 просмотров
schedule
09.07.2023
Почему/когда мы должны использовать std::swap; swap(a, b) на std::iter_swap(&a, &b)?
Почему/когда мы должны предпочесть using std::swap; swap(a, b); std::iter_swap(&a, &b) ?
254 просмотров
schedule
15.09.2022
C++ с использованием поиска, зависящего от объявления и аргумента
Является ли приведенный ниже код действительным для С++ 98 или для него требуется более новая версия стандарта С++?
namespace basic
{
void f(int) {}
}
namespace lib
{
template<class T1, class T2>
void g(T1 x1, T2 x2)
{
using...
171 просмотров
schedule
27.05.2022
C++ - Как включить ADL с advance() на итераторах в контейнере данных с пользовательским шаблоном?
Вот контейнер:
namespace container_namespace
{
template <class element_type, class element_allocator_type = std::allocator<element_type> >
class container
{
// stuff
class iterator
{
// stuff
};
};
}
Где...
276 просмотров
schedule
18.07.2023
Определение функции в пространстве имен, отличном от ADL, локальном или глобальном пространстве имен
См. Код ниже:
#include <iostream>
/// Definition of void perform(a_lib::a_class&). Where should I put this definition?
/// See the comments below for where I've tried placing it.
// void perform(a_lib::a_class&) {
// std::cout...
133 просмотров
schedule
22.04.2022
Удаленная функция и ADL
Я столкнулся со следующим запутанным примером, связанным с ADL и удаленными функциями:
Первый пример:
namespace A
{
struct S{};
void f(S){cout << "adl" << endl;}
}
namespace C
{
//void f() = delete;
//void f...
86 просмотров
schedule
15.12.2023
Поиск зависимых имен, зависящих от аргументов
В этом описании на cppreference.com говорится, что
Поиск зависимого имени, используемого в шаблоне, откладывается до тех пор, пока не станут известны аргументы шаблона, когда [...] ADL проверяет объявления функций с внешней связью , которые...
147 просмотров
schedule
06.01.2023
ADL и определения типов
Короче говоря, я пытаюсь понять поведение Argument-Dependent Lookup в C++. Некоторые утверждения в ISO/IEC 14882:2017 (E) относительно ADL мне непонятны. Надеюсь, кто-нибудь разъяснит мне их.
Согласно стандарту,
Имена typedef и объявления...
80 просмотров
schedule
11.04.2023
Зависимые имена шаблонов и C ++ 20 ADL
Рассмотрим следующий пример:
namespace N {
template<class>
struct C { };
template<int, class T>
void foo(C<T>);
}
template<class T>
void bar(N::C<T> c) {
foo<0>(c);
}
int main() {...
255 просмотров
schedule
17.02.2023