Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
AndrSlav
65 / 53 / 14
Регистрация: 20.12.2013
Сообщений: 459
1

Binder2nd не может выбрать функцию

15.12.2017, 18:29. Просмотров 68. Ответов 1
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <stdio.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
#include <string>
#include <memory>
#include <math.h>
#include <valarray>
#include <iterator>
 
   using std::vector;
 
   double fu(const double& d)
   {
    return pow(double(d), 2);
   };
 
   double pow_my(const double& d1, const double& d2)
   {
    return pow(d1, d2);
   };
 
 int _tmain(int argc, _TCHAR* argv[])
{
  int dim= 3;
  vector<double> ind(3), rez(3);
 
  std::transform(ind.begin(), ind.end(), ind.begin(), std::ptr_fun(fu));
  std::transform(ind.begin(), ind.end(), ind.begin(), std::bind2nd(std::ptr_fun(pow_my), 2.));
 
    return 0;
}
Строка 30 проходит, 31 - нет.
[bcc32 Error] algorithm(517): E2015 Ambiguity between 'operator std::binder2nd<std:ointer_to_binary_function<const double &,const double &,double> >:)(const double &) const at ...' and 'operator std::binder2nd<std:ointer_to_binary_function<const double &,const double &,double> >:)(const double &) const at ...
C++
1
2
3
4
5
6
7
8
9
        result_type operator()(const argument_type& _Left) const
        {   // apply functor to operands
        return (op(_Left, value));
        }
 
    result_type operator()(argument_type& _Left) const
        {   // apply functor to operands
        return (op(_Left, value));
        }
Если заменить
C++
1
double pow_my(const double& d1, const double& d2)
на
C++
1
double pow_my(double d1, const double& d2)
то работает, но почему так нужно делать?

Добавлено через 1 минуту

Не по теме:

Офигеть как цитата компилятора вставилась :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2017, 18:29
Ответы с готовыми решениями:

Отличие bind2nd от binder2nd
Привет. Чем отличается bind2nd (1st) от binder2nd (1st)? Первый - функция, а...

Есть два перегруженныйх оператора *, но компилятор не может выбрать нужный, почему?
#include &lt;stdio.h&gt; class klass { public: klass() {} klass(int n) {} ...

функция может вызывать другую функцию?
функция может вызывать другую функцию? (не саму себя) или это невозможно? :cry:

По какой причине компилятор может не заинлайнить функцию?
Здравия всем! В общем, прочёл я тут одну тему, и нашёл кое-что интересное: ...

Подскажите библиотеку или может готовую функцию для копирования
Доброе время суток! И так мой маленький проект близится к завершению,...

1
hoggy
Заблокирован
Эксперт С++
15.12.2017, 19:11 2
Цитата Сообщение от AndrSlav Посмотреть сообщение
но почему так нужно делать?
похоже на баг во всех компиляторах))
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2017, 19:11

Может ли функция иметь аргументом другую функцию или объект?
Внимание тупой вопрос )) А может ли функция иметь аргументом другую функцию или...

Написать программу, которая по выбору пользователя меняет цвет консольного приложения. Пользователь может выбрать цвет ш
Написать программу, которая по выбору пользователя меняет цвет консольного...

Написать функцию которая может читать цифры с 1-го до n-го элемента в массиве (используя pointer)
Написать функцию которая может читать цифры с 1-го до n-го элемента в массиве и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru