Форум программистов, компьютерный форум CyberForum.ru

binder3 - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как сделать проверку логина из файла? http://www.cyberforum.ru/cpp-beginners/thread924217.html
Как сделать проверку логина из файла? Ну допустим у меня есть такое: #include <iostream> #include <cstdlib> #include <fstream> #include <string> using namespace std;
C++ Можно ли использовать cin.getline для указателя типа char* Вот к примеру код он работает, но при отладке Ошибка доступа. #include <iostream> using namespace std; struct EXAMPLE{char* pName; char* pAvto; EXAMPLE* next; }; int main(int nArg,char* pszArgv) {EXAMPLE* pv = new EXAMPLE; cin.getline(pv->pName,128); http://www.cyberforum.ru/cpp-beginners/thread924216.html
C++ delete this
Добрый день! У меня возник такой вопрос - почему в программе возникает неопределённое поведение для объекта, в деструкторе которого присутствует конструкция delete this? Ведь, по идеи, всё верно - удаляем объект по адресу, выходим из функции-деструктора и всё хорошо - объект больше память не занимает.
C++ Нужен код, который сможет изменять порядок вопросов при запуске программы
Нужен код,который сможет изменять порядок вопросов при запуске программы. Например:(при первом запуске) 1)Сколько тебе лет? 2)Ты бухал? (При втором запуске): 1)Ты бухал? 2)Сколько тебе лет?
C++ Как делать оконные приложения C++ http://www.cyberforum.ru/cpp-beginners/thread924166.html
Извините за ламерский вопрос, но всё же, кто как делает оконные приложения на С++? Mfc? Или Borland C++ Builder? Кто может дать ссылку на какие-то уроки?) А то хочется с консоли переходить на оконные программы :)
C++ Подсчет символа //header #ifndef STRING1_H_ #define STRING1_H_ #include <iostream> using std::ostream; using std::istream; class String { private: подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7954 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
17.07.2013, 10:06     binder3
С поддержкой функций обычных (чем кстати не занимется ни bind2nd, ни bind1st) будет менее симпатично.

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <functional>
 
template<typename Operation>
struct binder3_t : 
   public std::unary_function<typename Operation::first_argument_type, typename Operation::result_type>
{
public:
   binder3_t(Operation op, const typename Operation::second_argument_type& s,
         const typename Operation::third_argument_type& t) :
      operation(op), second(s), third(t)
   {
   }
   typename Operation::result_type operator () (const typename Operation::first_argument_type& arg)
   {
      return operation(arg, second, third);
   }
private:
   Operation operation;
   typename Operation::second_argument_type second;
   typename Operation::third_argument_type third;
};
 
template<typename Operation, typename T1, typename T2>
binder3_t<Operation> binder3(Operation op, const T1& s, const T2& t)
{
   typename Operation::second_argument_type second(s);
   typename Operation::third_argument_type third(t);
   return binder3_t<Operation>(op, second, third);
}
 
template<typename T0, typename T1, typename T2, typename R>
struct ternary_function
{
   typedef T0 first_argument_type;
   typedef T1 second_argument_type;
   typedef T2 third_argument_type;
   typedef R result_type;
};
 
// test
 
struct multiply : ternary_function<int, int, int, int>
{
   result_type operator () (int f, int s, int t)
   {
      return f * s * t;
   }
};
 
#include <iostream>
#include <vector>
#include <algorithm>
 
int main()
{
   std::vector<int> v = {1};
   std::transform(v.begin(), v.end(), v.begin(), binder3(multiply(), 2, 3));
   std::cout << v.front() << std::endl;
}
 
Текущее время: 19:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru