Результаты поиска по запросу "overload-resolution"
Разрешение перегрузки / неоднозначность в поиске имени (какой)
7,3,3 / 14 (C ++ 03)
чтобы увидеть полный набор правил, необходимых
арты High Integrity C ++ предполагают, что r-значение аргументов функций может быть удалено, что предотвращает неявные преобразования.http://www.codingstanda...
), но вы все еще загромождаете вывод ошибок несущественными вещами. Используя эталонную версию, вы избегаете рассматривать копии в целом и сосредотачиваетесь только на том, что на самом деле имеете в виду.
могу определить шаблон функции, чтобы предотвратить неявные преобразования?Кажется, я могу предотвратить неявные преобразования, используя не шаблонные функц...
Таким образом, способ исправить это по умолчанию аргумент (возвращаемый тип не учитывается):
лятор Microsoft (Visual Studio 2017 15.2) отклоняет следующий код: #include <type_traits> struct B { template<int n, std::enable_if_t<n == 0, int> = 0> void f() { } }; struct D : B { using B::f; template<int n, std::enable_if_t<n == 1, int> = 0> ...
, [...]
орое время назад меня смутило следующее поведение некоторого кода, когда я хотел написатьis_callable<F, Args...> черта характера. Разрешение перегрузки не вызовет функции, принимающие аргументы неконстантным ref, верно? Почему это не отклоняется ...
то, что вы описали, это шаблоны в C ++
етил это на днях, скажем, у вас есть два перегруженных метода: public void Print<T>(IEnumerable<T> items) { Console.WriteLine("IEnumerable T"); } public void Print<T>(T item) { Console.WriteLine("Single T"); }Этот код: public void TestMethod() ...
Спасибо, Джаред, когда он прочитал это снова, я понял смысл.
мер, у вас есть такой тип: public class EffectOptions { public EffectOptions ( params object [ ] options ) {} public EffectOptions ( IEnumerable<object> options ) {} public EffectOptions ( string name ) {} public EffectOptions ( object owner ) ...
больше не должен быть применимым членом функции для вызова. Очевидно, что то, что я только что сказал, неверно, но ваш ответ, похоже, не решает эту проблему (так, как я понимаю).
ющий вызов перегруженEnumerable.Select [http://msdn.microsoft.com/en-us/library/system.linq.enumerable.select.aspx] метод: var itemOnlyOneTuples = "test".Select<char, Tuple<char>>(Tuple.Create);терпит неудачу с ошибкой неоднозначности ...
анализируется соответственно.
ющий код завершается ошибкой, как и ожидалось, потому что нет перегрузкиget найден. С помощьюstd::getрешит проблему. #include <array> int main() { std::array<int, 2> ar{2,3}; auto r = get<0>(ar);//fails, get was not declared in this scope }Тем ...