Форум программистов, компьютерный форум, киберфорум
Наши страницы

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; ... 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
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
17.07.2013, 11:10
DU,
еще нужно от захардкоженного типа возвращаемого значения избавится, которое можно выводить либо внутри самого биндера3, либо в make функции
А подробнее можно? Я вот что-то придумать не могу, чтобы это было хоть как-то красиво

Один из интересных вариантов - использовать boost::function_types

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
#include <boost/function_types/result_type.hpp>
#include <boost/function_types/parameter_types.hpp>
#include <boost/function_types/function_arity.hpp>
 
namespace desc = boost::function_types;
 
template<typename Operation>
struct binder3_t
{
   static_assert(desc::function_arity<Operation>::value == 3,
         "only ternary functions can be accepted");
   typedef typename desc::result_type<Operation>::type result_t;
   typedef typename desc::parameter_types<Operation>::type args_t;
   typedef typename boost::mpl::at_c<args_t, 0>::type first_t;
   typedef typename boost::mpl::at_c<args_t, 1>::type second_t;
   typedef typename boost::mpl::at_c<args_t, 2>::type third_t;
public:
   template<typename T1, typename T2>
   binder3_t(Operation op, const T1& s, const T2& t) :
      operation(op), second(s), third(t)
   {
   }
   result_t operator () (const first_t& arg) const
   {
      return operation(arg, second, third);
   }
private:
   Operation operation;
   second_t second;
   third_t third;
};
Но работает только с обычными функциями.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.