Какая часть спецификации C++ ограничивает зависимый поиск аргумента в нахождении шаблонов функций в наборе связанных пространств имен? Другими словами, почему делает последнюю возможность в основном ниже сбоя к...
При рассмотрении n3092, в §6.5.4 мы находим эквивалентность для основанного на диапазоне для цикла. Это затем продолжает, что __ начинают и __, конец равен. Это дифференцируется между массивами и другими типами, и я нахожу...
Я пытался изучить и принять идиому копирования-обмена после этого подробного объяснения этот вопрос: идиома Copy-Swap. Но я нашел код, которого никогда не видел: using std :: swap; // разрешить ADL в ...
Каковы некоторые хорошие объяснения того, что такое поиск, зависимый от аргументов? Многие также называют это Koenig Lookup. Предпочтительно я хотел бы знать: почему это хорошо?
Почему это плохо?
Как ...
Возможный дубликат: почему не найдет шаблоны функций? Звонирование Get, похоже, не вызывает информирование, зависимый от аргументов: Auto t = std :: make_tuple (false, false, true);
bool a = get <0> ...
У меня что-то вроде этого: #include
пространство имен N
{typedef std :: pair MyPair; std :: ostream & operator << (std :: ostream & o, MyPair const & ...
Я не собираюсь использовать это в реальном коде. Обещаю. Гарантирует ли стандарт, что пространство имен std будет найдено, когда аргумент функции имеет тип container :: iterator и container :: ...
Рассмотрим этот пример, я нашел на веб-сайте IBM: #include
используя пространство имен STD; void f (double) {cout << "Функция f (double)" << endl; } Шаблон Void G (T ...
Как должен себя вести этот код? Он вызывает общую функцию, игнорируя мою перегрузку, если я использую квалифицированное имя в функции call_read (); и сначала вызывается перегрузка, а затем общая версия, если я использую неквалифицированный ...
Представьте, что я пишу какой-то шаблон контейнера или что-то в этом роде. И пришло время специализировать для этого std :: swap. Как порядочный гражданин, я включу ADL, сделав что-то вроде этого: template
Можно ли взять адрес функции, которая будет найдена через ADL? Например: шаблон < класс T > void (* get_swap ()) (T & amp ;, T & amp;) {return & amp; _________; // как ...
У меня есть класс шаблона NB ::B, полученный из не--класса шаблона NA ::A в пространстве имен. act — это функция шаблона, вызывающая функцию add _ref для экземпляра своего аргумента шаблона....
Пункт из проекта ISO n3290, раздел 3.4 .2 абзац 1: Когда постфиксное-выражение в вызове функции является неквалифицированным-идентификатором, другие пространства имен, не учитываемые во время обычного неквалифицированного поиска, могут ...
У меня есть набор прямоугольников, и я хотел бы «уменьшить» набор, чтобы у меня было наименьшее количество прямоугольников для описания той же области, что и исходный набор. Если возможно, я хотел бы, чтобы это было быстро, ...
У меня проблема, когда я хотел бы предоставить общую версию функции foo, которая может применяться только тогда, когда нет абсолютно никакого другого соответствия для вызова. Как я могу изменить следующий код ...
Рассмотрим следующую программу: #include
#include
#include <вектор>
#include <служебная программа>
используя пространство имен std; // только для удобства, только для иллюстрации ...
C ++ 0x ' В цикле ranged-for есть специальное исключение для обработки массивов (FDIS §6.5.4), и есть две функции, std :: begin и end, которые перегружены для обработки массивов или для выбора методов начала / конца. ...
I есть вопрос относительно стандартного разрешения ADL в C ++. Вот пример кода, объясняющий мой запрос: #include // Механизм:
пространство имен A {template :: ...
В стандартном рабочем проекте C ++ 0x указано (раздел 6.5.4) следующее о неявных вызовах begin () и end () в цикле for на основе диапазона: "начало" и "конец" ищутся с аргументом -...
У меня есть набор шаблонов / функций, которые позволяют мне печатать кортеж / пара, предполагая, что для каждого типа в кортеже / паре определен оператор <<. К сожалению, из-за 17.4.3.1, запрещено ...
В чем смысл поиска по Кенигу? Нельзя не думать об этом как о чем-то, что делает ваш код более трудным для чтения и более нестабильным. Разве они не могли определить поиск по Кенигу так, чтобы он только работал ...
У меня есть небольшой фрагмент кода для вашего рассмотрения, который меня весьма озадачивает много. Странно то, что он компилируется и на Sun Studio, и на GCC, хотя я думаю, что этого не должно быть. Подумайте ...
При написании набора тестов мне нужно было предоставить реализацию оператора << (std :: ostream & ... для использования модульного теста Boost Это сработало: namespace theseus {namespace core {std :: ...
Почему был изобретен поиск, зависимый от аргументов (ADL)? Просто чтобы мы могли написать cout << материал вместо std :: operator << (cout, stuff)? Если это так, то почему ADL не был ограничен операторами ...
Рассмотрим этот код: template
структура X
{друг void f (X *) {}
}; int main ()
{f ((X <0> *) 0); // Ошибка?
} Компиляторы, похоже, сильно не согласны. (MSVC08 / 10 говорит нет, GCC <4.5 говорит ...
Некоторое время назад я прочитал статью, которая объяснила несколько ловушек зависимого поиска аргумента, но я не могу больше находить его. Именно о получении доступа к вещам у Вас не должно быть доступа к или...