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

Шаблонное вычисление типов и Variadic Templates - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить номер строки квадратной матрицы с максимальной суммой элементов http://www.cyberforum.ru/cpp-beginners/thread1609713.html
Написать программу, которая определяет номер строки квадратной матрицы, сумма элементов которой максимальна.
C++ Поднять asmx-сервер и клиентом на C++ достучаться до методов сервака (как добавить ссылку на веб-сервис?) Всем доброго времени суток! Стоит задача поднять asmx сервис (сервер) и клиентом на с++ достучаться до методов сервака. Если писать клиент на шарпе, проблем нет, т.к. там есть возможность добавления ссылки на веб-службу. Но как добавить ссылку на веб-сервис из с++? Код сервака написан, сам сервер запущен (допустим http://localhost:10050/Service.asmx), код плюсов написан, осталось только из... http://www.cyberforum.ru/cpp-beginners/thread1609709.html
SFML Помогите собрать библиотеку sfml с помощью cmake
Здравствуйте.Помогите собрать библиотеку sfml с помощью cmake.Пожалуйста опишите подробно.Буду благодарен.
C++ Распечатать координаты вектора
Распечатать координаты вектора, равного разности двух векторов a и b размерностью n=10 и найти его модуль.
C++ Как собрать программу ?(Заранее прошу прощения, у администрации если что то нарушил) http://www.cyberforum.ru/cpp-beginners/thread1609679.html
Подскажите пожалуйста как собрать вот этот код? : #include <windows.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { HANDLE hMutex = OpenMutex(MUTEX_ALL_ACCESS, 0, "any_name"); if(hMutex) ReleaseMutex(hMutex);
C++ Запросить у пользователя массив из 10 строк и вывести на экран наименьшую 3) Запросить у пользователя массив из 10 строк и вывести на экран наименьшую подробнее

Показать сообщение отдельно
DrOffset
6453 / 3827 / 885
Регистрация: 30.01.2014
Сообщений: 6,622
11.12.2015, 18:30     Шаблонное вычисление типов и Variadic Templates
Цитата Сообщение от Mirmik Посмотреть сообщение
Согласен, не очень эстетично, но вполне функционально.
Эстетика зависит от конкретной задачи в комплексе. А то, что я тебе показал, это фактически паттерн.
А вообще rebind - это старый трюк. В стандартной библиотеке его использовали для получения правильного типа аллокатора для хранимого элемента в std::list. Здесь есть еще.

Добавлено через 30 секунд

Не по теме:

Цитата Сообщение от Mirmik Посмотреть сообщение
Ну, это вы меня всё-таки обманываете.
Какой я нехороший. Ай-ай-ай.



Добавлено через 10 минут
Цитата Сообщение от Mirmik Посмотреть сообщение
чтобы задать типы для tuple, который, после раскрытия, будет передан этой функции в качестве параметра
Ну а с tuple ничего и городить не надо.
Кликните здесь для просмотра всего текста
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
#include <cstdio>
#include <tuple>
 
template <typename T>
struct mtd_parser;
 
template <typename R, typename T, typename ...V>
struct mtd_parser<R(T::*)(V...)>
{
    using tuple_type = std::tuple<V...> ;
};
template <typename R, typename ...V>
struct mtd_parser<R(*)(V...)>
{
    using tuple_type = std::tuple<V...>;
};
/*************************/
 
template <typename T>
void print()
{
    printf("%s\n", __PRETTY_FUNCTION__);
}
 
struct C {};
 
int main()
{
    void* (*ptr)(int, double);
    void* (C::*ptr1)(int, double);
 
    void * (*ptr2)(mtd_parser<decltype(ptr)>::tuple_type);
    void * (*ptr3)(mtd_parser<decltype(ptr1)>::tuple_type);
    
    print<decltype(ptr2)>();
    print<decltype(ptr3)>();
}
http://rextester.com/AKYR85980

Еще можно упаковать аргументы в спец. тип. И передавать его в нужный контекст, а потом раскрывать его, где нужно. Но это вариация на тему.
 
Текущее время: 10:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru