Russian Qt Forum
Май 17, 2024, 04:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: first, second  (Прочитано 9742 раз)
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #15 : Ноябрь 02, 2015, 16:49 »

Цитировать
К сожалению, так я теряю пусть небольшой, но приятный ф-ционал std::pair (конструктор(ы), оператор < и др).
Ну так и определите их в макросе. В чём проблема?
Код
C++ (Qt)
#define CREATE_STRUCT(name, first, second) \
   template <class T1, class T2> \
   struct name \
   { \
       T1 first; \
       T2 second; \
        name() {} \
        name(const T1 & arg1, const T2 & arg2) : first(arg1), second(arg2) {} \
   }; \
   template <class T1, class T2> \
   bool operator<(const name<T1, T2> & p1, const name<T1, T2> & p2) {} \
 
И ещё в макрос можно засунуть специализацию make_pair, например..
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #16 : Ноябрь 03, 2015, 03:36 »

Ну так и определите их в макросе. В чём проблема?
Такой макрос выглядит очень сомнительно. Ну ладно, нету хорошего способа - значит нету, не все должно быть как хотелось бы  Улыбающийся
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #17 : Ноябрь 03, 2015, 07:41 »

Такой макрос выглядит очень сомнительно.
Вовсе нет. Добавьте туда конструктор копирования, операторы присваивания и сравнения и он будет генерировать структуру аналогичную pair.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.073 секунд. Запросов: 22.