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

Compile-time алгоритмы. сборник - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Практические задания из собеседований http://www.cyberforum.ru/cpp/thread308978.html
Предлагаю в данной теме выкладывать интересные и не очень практические задачи, которые попадаются на собеседованиях. Я начну: 1. Написать функцию, определяющую является ли заданное число степенью двойки. 2. Написать функцию, определяющую содержит ли односвязный список циклы (например, последний ссылается на второй). Просьба решения выкладывать под CUT'ом.
C++ realloc и вызов конструктора здраствуйте! мне препод сказал, что можно выделить память оператором new, а потом довыделить её с помощью realloc и каким-то образом вызвать конструкторы для новой памяти(ну или это я так его понял:D). Как это можно сделать? задание вобще такое: Во всех вариантах необходимо первоначально создать шаблон класса для работы с массивом произвольного типа данных. Шаблон должен включать: указатель,... http://www.cyberforum.ru/cpp/thread300431.html
Баг asio? или баг TCP стека? C++
всем привет. повстречался с очень странным багом. и не могу определить кто бажит, asio, или TCP-стек. на стороне клиента, сохраняю отправляемые массивы в файл, чтоб убедится в том, что массивы не портятся. так и есть. массивы не искаженны: на стороне сервера, так же, сохраняю принятые массивы. но тут, массив приходит искаженным:
C++ Получить индекс типа в mpl::map`е
всем привет. есть mpl карта типов(key -> value). нужно получить индекс типа имея только ключ. где-то накосячил. но непойму где. #include <iostream> #include <boost/mpl/distance.hpp> #include <boost/mpl/find.hpp> #include <boost/mpl/find_if.hpp>
C++ Задачи для тренировки и лучшего понимания http://www.cyberforum.ru/cpp/thread153746.html
Ребят. Кто-нибудь может дать задачу для тренировки? Приблизительно по всему курсу С++. Буду благодарен за сложную задачу, но которую способен сделать новичок-любитель. Затраты сил-времени не важно. Главное, чтобы это было интересно и не слишком рутинно. + Если найдется человек который даст задачу просьба помогать с кодом, который я буду себя скидывать. Не переписывать за меня, но указывать на...
C++ Теория плагинов Всем привет. Для одной моей проги, нужно реализовать поддержку плагинов. Плагины предполагаются простенькие, написанные на Си. То, что плагин, это просто .so файл - понятно. То, что прога может дергать из .so файла функции - тоже понятно. 1. Непонятно то, как сам плагин сможет дергать функции из программы? 2. Программа написана на С++, но плагины предполагаю писать на Си, во избежания... подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
24.07.2014, 19:55     Compile-time алгоритмы. сборник
Что-то compile-time алгоритмы совсем затихли, посему выложу то, что меня сегодня крайне заинтересовало. Ссылка на SO: http://stackoverflow.com/questions/2...37715#24937715
Было очень интересно как это сделать, пытался по разному, в итоге на работе так и не додумался, а пока ехал домой подумал еще раз и приехав домой написал - отработало.
Вкратце, перевод LOKI typelist в std::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
template<typename T, typename... Args>
struct tuple_push;
 
template<typename T, typename... Args>
struct tuple_push<T, std::tuple<Args...>>
{
    typedef std::tuple<Args..., T> type;
};
 
template<typename TL>
struct typelist_to_tuple;
 
template<typename H, typename T>
struct typelist_to_tuple<typelist<H, T>>
{
    typedef typename tuple_push<H, typename typelist_to_tuple<T>::type>::type type;
};
 
template<typename H>
struct typelist_to_tuple<typelist<H, null_typelist>>
{
    typedef std::tuple<H> type;
};
 
int main()
{
    typedef typelist<Int, typelist<Float, typelist<Int, null_typelist>>> list;
    typedef typelist_to_tuple<list>::type tuple;
    tuple v = 1;
}
Выдаст ошибку вида, нельзя присвоить 1 значению типа std::tuple<Int, Float, Int>.

Полный вариант с некоторыми извратами со SFINAE на coliru: http://coliru.stacked-crooked.com/a/7e8ac56a53738fca

Вряд ли сие кому пригодится, но пусть будет, я думаю.
 
Текущее время: 05:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru