Лучшие overload-resolution вопросы ИТ разработчиков

  • 10 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

Почему для разрешения перегрузки используются квалификаторы const в аргументах функции? [Дубликат]

Possible Duplicate: Functions with const arguments and Overloading Я довольно смущен правилами перегрузки и объявления констант. Вот две вещи, которы...

Задан 23 May 2017, 12:13 от CommunitySarien
  • 5 голосов
  • 0 ответов
  • 0 просмотров
0 ответов

Таким образом, способ исправить это по умолчанию аргумент (возвращаемый тип не учитывается):

лятор 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> ...

Задан 08 Aug 2017, 19:19 от Evg
  • 15 голосов
  • 4 ответа
  • 0 просмотров
4 ответа

хм, я "застрял" с Java по разным причинам, самой большой из которых является удобство сопровождения (добавление другого языка значительно ограничивает мою способность получать помощь от других разработчиков)

отаю над некоторым динамическим вызовом кода через интерпретатор, и я вхожу в неприятные области разрешения методов, как обсуждалось вJLS раздел 15.12 [http://docs.oracle.com/javase/specs/jls/se5.0/html/expressions.html#15.12]. «Простой» способ ...

Задан 16 May 2011, 17:34 от Jason S
  • 1 голос
  • 3 ответа
  • 0 просмотров
3 ответа

 чтобы увидеть полный набор правил, необходимых

арты High Integrity C ++ предполагают, что r-значение аргументов функций может быть удалено, что предотвращает неявные преобразования.http://www.codingstanda...

Задан 15 May 2017, 21:55 от jbcoe
  • 21 голос
  • 1 ответ
  • 0 просмотров
1 ответ

Если адрес функции не может быть разрешен при выводе, это SFINAE или ошибка компилятора?

В C ++ 0x правила SFINAE были упрощены таким образом, что любое недопустимое выражение или тип, возникающие в «непосредственном контексте» дедукции, не приво...

Задан 23 May 2010, 14:24 от Faisal Vali
  • 2 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

, [...]

орое время назад меня смутило следующее поведение некоторого кода, когда я хотел написатьis_callable<F, Args...> черта характера. Разрешение перегрузки не вызовет функции, принимающие аргументы неконстантным ref, верно? Почему это не отклоняется ...

Задан 16 Jan 2011, 09:05 от Johannes Schaub - litb
  • 24 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

Почему значение перечисления с фиксированным базовым типом char разрешается в fct (int) вместо fct (char)?

Эта проблема возникла при ответеэтот вопрос о разрешении перегрузки с перечислениями.Пока дело за

Задан 07 Jan 2013, 23:22 от GManNickG
  • 28 голосов
  • 3 ответа
  • 0 просмотров
3 ответа

Строковый литерал соответствует перегрузке bool вместо std :: string

Я пытаюсь написать класс C ++, который имеет несколько перегруженных методов: class Output { public: static void Print(bool value) { std::cout << value ? "True" : "False"; } static void Print(std::string value) { std::cout << value; } };Теперь ...

Задан 08 Feb 2013, 10:16 от series0ne
  • 35 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

Своеобразное разрешение перегрузки с while (true)

Я реализовывал синхронные / асинхронные перегрузки, когда натолкнулся на эту особую ситуацию:Когда у меня есть регулярное лямбда-выражение без параметров или...

Задан 19 Jun 2014, 21:03 от i3arnon
  • 32 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

Спасибо, Джаред, когда он прочитал это снова, я понял смысл.

мер, у вас есть такой тип: public class EffectOptions { public EffectOptions ( params object [ ] options ) {} public EffectOptions ( IEnumerable<object> options ) {} public EffectOptions ( string name ) {} public EffectOptions ( object owner ) ...

Задан 02 Mar 2011, 20:56 от Joan Venge
  • 19 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

 то, что вы описали, это шаблоны в 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() ...

Задан 05 Feb 2011, 22:08 от theburningmonk
  • 29 голосов
  • 3 ответа
  • 0 просмотров
3 ответа

 связывает ссылку lvalue.

отрим следующую программу: #include <cstddef> #include <cstdio> void f(char const*&&) { std::puts("char const*&&"); } // (1) void f(char const* const&) { std::puts("char const* const&"); } // (2) template <std::size_t N> void f(char const ...

Задан 18 Mar 2011, 02:33 от James McNellis
  • 10 голосов
  • 6 ответов
  • 0 просмотров
6 ответов

функция-член скрывает свободную функцию

void foo(int) { } class X { void foo() { } void bar() { foo(42); // error: no matching function for call to 'X::foo(int)' // note: candidate is: // note: void X::foo() // note: candidate expects 0 arguments, 1 provided } };Почему C ++ не может ...

Задан 28 Jan 2012, 12:19 от fredoverflow
  • 9 голосов
  • 3 ответа
  • 0 просмотров
3 ответа

Неверное разрешение перегрузки для функций с двумя аргументами

Давайте возьмем следующий пример программы: #include <cmath> namespace half_float { template<typename T> struct half_expr {}; struct half : half_expr<half> { operator float() const; }; template<typename T> half sin(const half_expr<T>&); ...

Задан 12 Jan 2013, 16:13 от Christian Rau
  • 2 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

Сборка libspline для Matlab в Windows - неоднозначный вызов перегруженной функции pow

Я пытаюсь построить libspline для Matlab на Windows, доступный здесь: http://ttic.uchicago.edu/~smaji/projects/libspline-release1.0.tar.gz [http://ttic.uchicago.edu/~smaji/projects/libspline-release1.0.tar.gz] Я получаю следующую ошибку: >> ...

Задан 13 Jul 2013, 20:30 от Nucular
  • 3 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

), но вы все еще загромождаете вывод ошибок несущественными вещами. Используя эталонную версию, вы избегаете рассматривать копии в целом и сосредотачиваетесь только на том, что на самом деле имеете в виду.

могу определить шаблон функции, чтобы предотвратить неявные преобразования?Кажется, я могу предотвратить неявные преобразования, используя не шаблонные функц...

Задан 16 May 2017, 08:15 от jbcoe
  • 9 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

Если у вас есть как постоянная, так и неконстантная перегрузка, это решается константой объекта, для которого вызывается функция.

я есть класс, который выглядит примерно так: class ClassA { public: float Get(int num) const; protected: float& Get(int num); }Вне класса я вызываю функцию Get (). float foo = classAInstance.Get(i);Я ожидаю, что это вызовет публичную версию, ...

Задан 04 Jun 2011, 21:52 от thekidder
  • 48 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

Каковы подводные камни ADL?

Некоторое время назад я прочитал статью, в которой объяснялось несколько ловушек поиска, зависящего от аргумента, но я больше не могу его найти. Речь шла о п...

Задан 02 Jun 2010, 14:28 от fredoverflow
  • 9 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

Почему ограничения типов не являются частью сигнатуры метода?

Так я читаюЭрик Липперт «Ограничения не являются частью подписи» [http://blogs.msdn.com/b/ericlippert/archive/2009/12/10/constraints-are-not-part-of-the-signature.aspx] , и теперь я понимаю, что спецификация определяет, что ограничения ...

Задан 25 Feb 2012, 03:21 от Daryl
  • 34 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

 анализируется соответственно.

ющий код завершается ошибкой, как и ожидалось, потому что нет перегрузки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 }Тем ...

Задан 20 Nov 2018, 12:55 от LcdDrm
  • 8 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

 больше не должен быть применимым членом функции для вызова. Очевидно, что то, что я только что сказал, неверно, но ваш ответ, похоже, не решает эту проблему (так, как я понимаю).

ющий вызов перегруженEnumerable.Select [http://msdn.microsoft.com/en-us/library/system.linq.enumerable.select.aspx] метод: var itemOnlyOneTuples = "test".Select<char, Tuple<char>>(Tuple.Create);терпит неудачу с ошибкой неоднозначности ...

Задан 05 Mar 2011, 12:25 от Ani
  • 24 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

Почему значение перечисления с фиксированным базовым типом char разрешается в fct (int) вместо fct (char)?

Эта проблема возникла при ответеэтот вопрос о разрешении перегрузки с перечислениями [https://stackoverflow.com/questions/14185352/underlying-type-of-weak-typed-enum-in-c11] . Пока дело заlong long определенно была ошибка в MSVC2012NovCTP ...

Задан 08 Jan 2013, 00:22 от GManNickG
  • 4 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

SFINAE: проверка существования функции прерывается, когда перегрузка перемещается в другие пространства имен

Я хочу проверить существование функции в определенном пространстве имен, используя SFINAE. я нашелSFINAE для тестирования свободной функции из другого пространства ...

Задан 21 Sep 2013, 14:35 от syam
  • 2 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

Сборка libspline для Matlab в Windows - неоднозначный вызов перегруженной функции pow

я пытаюсь построить libspline для Matlab на Windows, доступно здесь:http://ttic.uchicago.edu/~smaji/projects/libspline-release1.0.tar.gzЯ получаю следующую о...

Задан 13 Jul 2013, 18:30 от Nucular