Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
144 / 28 / 4
Регистрация: 06.05.2019
Сообщений: 1,838
Записей в блоге: 4

Как организовать перебор типов через цикл в 98 стандарте с++?

20.07.2020, 22:37. Показов 4513. Ответов 51
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Читал книга Андрея Александреску нашёл эти коды (я распрашивал как их использовать в предыдущих своих темах).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
template <class T, class U>
struct Typelist
{
typedef T head; 
typedef U Tail;
};
template <class TList, unsigned int index> struct TypeAt;
        
        template <class Head, class Tail>
        struct TypeAt<Typelist<Head, Tail>, 0>
        {
            typedef Head Result;
        };
 
        template <class Head, class Tail, unsigned int i>
        struct TypeAt<Typelist<Head, Tail>, i>
        {
            typedef typename TypeAt<Tail, i - 1>::Result Result;
        };
Если возможно создать кортёж, можно ли с помощью этих технологий организовать перебор элементов через цикл (очень надо помогите сделать)?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.07.2020, 22:37
Ответы с готовыми решениями:

LocalStorage - как организовать перебор элементов по определенному признаку через цикл for
Например, есть localStorage и в нем находится несколько объектов - это товары. *Наполняем корзину товаров*/ function...

Перебор файла посимвольно, как организовать цикл, работающий до конца файла.
Нужно перебрать файл посимвольно и, учитывая спецсимволы записать содержимое файла в Memo1. Помогите пожалуйста организовать цикл...

Цикл: Как грамотно организовать цикл с получением количества верных и неверных ответов?
Доброго времени суток, товарищи. Вот есть у меня два рандомно генерируемых числа, проверка произведения которых проверяется вводом ответа...

51
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
18.10.2020, 22:30
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Croessmah Посмотреть сообщение
Почему же я там нашел всё что нужно?
Кликните здесь для просмотра всего текста
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,822
18.10.2020, 23:22
Цитата Сообщение от Nexi99 Посмотреть сообщение
но тут же нету параметров
Так это и не шаблон, а его полная специализация. Она описывает то, как будет строиться экземпляр по шаблону в случае, если T будет задано как unsigned char.
0
144 / 28 / 4
Регистрация: 06.05.2019
Сообщений: 1,838
Записей в блоге: 4
19.10.2020, 01:12  [ТС]
Если не секрет сколько времени у вас ушло чтобы построить данную рекурсию, строчек кода довольно не мало. Я специфику то понял но объяснить конечно подетально не могу, изучаю пока эту тематику.
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,822
19.10.2020, 01:34
Цитата Сообщение от Nexi99 Посмотреть сообщение
Если не секрет сколько времени у вас ушло чтобы построить данную рекурсию, строчек кода довольно не мало. Я специфику то понял но объяснить конечно подетально не могу, изучаю пока эту тематику.
10 минут примерно.
0
144 / 28 / 4
Регистрация: 06.05.2019
Сообщений: 1,838
Записей в блоге: 4
19.10.2020, 02:25  [ТС]
Цитата Сообщение от Nexi99 Посмотреть сообщение
C++
1
2
3
class TupleImpl<Typelist<T, U>, I>
: public TupleElement<T, I>
, public TupleImpl<U, I + 1>
{ };
Почему здесь скобочки { } стоят когда описание класса уже закончено обычно они открываются ранее и все методы и параметры пишутся в нём?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
19.10.2020, 09:10
Цитата Сообщение от Nexi99 Посмотреть сообщение
Почему здесь скобочки { }
Потому что класс "пустой" - не добавляет ничего нового.
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,822
19.10.2020, 20:58
Цитата Сообщение от Nexi99 Посмотреть сообщение
Почему здесь скобочки { } стоят когда описание класса уже закончено обычно они открываются ранее и все методы и параметры пишутся в нём?
Они открыты и закрыты там, где должны. Просто у этого класса нет собственных "методов и параметров".
0
144 / 28 / 4
Регистрация: 06.05.2019
Сообщений: 1,838
Записей в блоге: 4
20.10.2020, 02:31  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Они открыты и закрыты там, где должны. Просто у этого класса нет собственных "методов и параметров".
Под утро дошло.
Цитата Сообщение от DrOffset Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
template < 
    typename T1 = NullType, typename T2 = NullType, typename T3 = NullType,
    typename T4 = NullType, typename T5 = NullType
>
class MakeList
{
    typedef typename MakeList< T2, T3, T4, T5 >::Result Tail;
public:
    typedef Typelist<T1, Tail> Result;
};
template <>
class MakeList<>
{
public:
    typedef NullType Result;
};
Почему здесь 2 раза прописывается MakeList, второй рас мы его переопредиляем наследуем или что с ним делаем?
Эту строку typedef typename MakeList<T2, T3, T4, T5>::Result Tail; я понимаю так, в поле MakeList<T2, T3, T4, T5> мы находим Result и назначаем всей этой цепочке имя Tail. также возникает вопрос откуда мы взяли элемент Result, если он не возник?

Добавлено через 45 секунд
и описан ниже в public

Добавлено через 2 минуты
Также не понятно почему первый раз опущен Т1?

Добавлено через 1 минуту
складывается впечатление что здесь устанавливаются границы T1, Tail чтобы поместить T2, T3, T4, T5

Добавлено через 2 минуты
Также не понятно зачем 2 списка один такой T1, T2, T3, T4, T5 второй T2, T3, T4, Т5, NullType?

Добавлено через 5 минут
здесь вроде понятно
C++
1
2
3
4
5
6
7
template <class TList> struct Length;
template <> 
struct Length< NullType >
{
    enum { value = 0 };//позже он будет равен 3ём если 3 элемента из примера, но список на 5ть элементов, но я все
//5ть не загонял
};
Добавлено через 2 минуты
внутри этой TypeAt структуры 2 элемента
C++
1
template <class TList, unsigned int Index> struct TypeAt;
один любой тип грубо говоря class TList
второй unsigned int Index

Добавлено через 3 минуты
а дальше что опять переопределение
C++
1
2
3
4
5
template <class Head, class Tail, unsigned int Index>
struct TypeAt<Typelist<Head, Tail>, Index>
{
    typedef typename TypeAt<Tail, Index - 1>::Result Result;
};
очень плохо что нет функции не могу понять как счётчик считает или вычитается.
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,822
20.10.2020, 13:29
Nexi99, на все ваши вопросы я уже ответил выше. В отличие от самого кода, на тот пост я потратил 30 минут, это непозволительно много для бесплатной помощи.
2
144 / 28 / 4
Регистрация: 06.05.2019
Сообщений: 1,838
Записей в блоге: 4
20.10.2020, 17:58  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
на все ваши вопросы я уже ответил выше. В отличие от самого кода, на тот пост я потратил 30 минут, это непозволительно много для бесплатной помощи.
ну что тут уж сделаешь если много чего не понятно. В целом понятно как оно работает но собрать своё что-то такое я не смогу конечно.
0
21.10.2020, 07:19

Не по теме:

Nexi99, может быть, своё Вам нужно не такое, а чуть проще.

0
144 / 28 / 4
Регистрация: 06.05.2019
Сообщений: 1,838
Записей в блоге: 4
21.10.2020, 07:38  [ТС]
Цитата Сообщение от politoto Посмотреть сообщение
может быть, своё Вам нужно не такое, а чуть проще.
А проще его тут и не запишешь, мне даже не понятно почему по умолчанию это все не реализовано, если бы я создавал язык я бы реализовал такое изначально. Многие языки программирования такое и не поддерживают даже видимо всё же это сложно, да и я давно изучаю эту тему тонны материалов прочитано но эти детали конечно ещё сложны для меня.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.10.2020, 07:38
Помогаю со студенческими работами здесь

Перевести строку, содержащую путь к файлу в стандарте ANSI С, в строку в стандарте фирмы Borland
ЗАДАНИЕ: Согласно стандарту ANSI С, при задании пути к файлу в программе на языке С, каталоги разделяются символом &quot;/&quot;, а в...

Как организовать перебор png файлов из ресурса?
Помогите решить проблемму: Как можно организовать следующее: есть обьект picturebox, есть ресурс: изображение в виде PNG файла 1.png,...

Как организовать последовательный перебор файлов в каталоге, для их чтения?
Не подскажет ли кто, как организовать последовательный перебор файлов в каталоге, для их чтения. Спасибо.

Как организовать цикл (С++)?
Как организовать цикл (С++), опроса (любой) клавиши клавиатуры? Например до 10 раз. Кто подскажет где можно прочесть или подсмотреть?...

Как организовать цикл?
Здравствуйте. Вообщем имеется уравнение,в правой части которого идёт бесконечное сложение.Слагаемые появляются по такому закону x -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
52
Ответ Создать тему
Новые блоги и статьи
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru