170 похожих чатов

Привет! Есть array с константами. Есть функция с шаблонным параметром. Можно как-то

запихнуть функцию с шаблонным параметром в цикл for, значение которого будет == константе под индексом?

Я хочу сделать так:

int array[20] = { ... };
for (size_t i = 0; i < n; i++) {
func<array[i]>()
}

Есть ли какой-то вариант?

31 ответов

9 просмотров

Я ещё только учу массивы, но сразу вижу ошибку Не стоит называть массив, как array, так как это является ключевым словом

Артур
Я ещё только учу массивы, но сразу вижу ошибку Не...

ключевое слово std::array<T, n>, если что. Шаблонный класс просто по имени отсутствует в коде

Ruslan-🪐 Автор вопроса
Артур
Я ещё только учу массивы, но сразу вижу ошибку Не...

А чтобы array не являлся ключевым словом, не нужно использовать using namespace std;

Артур
Я ещё только учу массивы, но сразу вижу ошибку Не...

std::vector<smth> vector кмк вполне нормально. те кто юзает namespace std- как раз нет

Stepan Zorin
ключевое слово std::array<T, n>, если что. Шаблонн...

но да, лучше не использовать array всё таки.

Stepan Zorin
ключевое слово std::array<T, n>, если что. Шаблонн...

Ну, обычно используют using namespace std, поэтому да

Артур
Ну, обычно используют using namespace std, поэтому...

да даже с ним надо указать параметры шаблона, типа std::array просто как такового нет

Ruslan-🪐 Автор вопроса

Знает кто решение?

Ruslan 🪐
Не делай так

Пока учусь, это экономит мне время в написании кода и сам код читабельнее и меньше

Артур
Пока учусь, это экономит мне время в написании код...

код читабельнее при std::cout std::cin, такое бросается в глаза и видишь ввод/вывод. вот насчет using std::string это уже получше

Michael
код читабельнее при std::cout std::cin, такое брос...

Ну, пока что буду использовать Иду по урокам симпл кода

Нет такого варианта нет аргументом шаблона может быть либо тип, либо Константа времени компиляции

Ruslan 🪐
Знает кто решение?

Решения не существует

Ruslan-🪐 Автор вопроса
Ilya Zviagin
Нет такого варианта нет аргументом шаблона может б...

Я вроде помню, что templat'ы полные по тьюрингу, и думал что можно указать компилятору, чтобы он заинлайнил

Michael
код читабельнее при std::cout std::cin, такое брос...

Тоже учусь, такой вопрос при использование в структуре using namespace std; на вывод cout компилятор выдавал ошибку, а при удалении using namespace и использование std::cout этой ошибки уже не было. С чем это может быть связано?

Вячеслав
Тоже учусь, такой вопрос при использование в струк...

С чем угодно. Пока люди телепатии не научились и никто не знает, что ты там писал или не писал.

Вячеслав
Тоже учусь, такой вопрос при использование в струк...

Штатный экстрасенс в отпуске. Ошибку в студию

Вячеслав
Тоже учусь, такой вопрос при использование в струк...

может быть связано с твоим кодом, который ты не прислал

Ruslan-🪐 Автор вопроса

А вот и ответ на мой вопрос: https://godbolt.org/z/cTq6vPx8K Нашёл способ здесь: https://stackoverflow.com/questions/46871005/how-to-unroll-a-for-loop-using-template-metaprogramming

а не проще просто 5 раз написать вызов функции ?

Ruslan-🪐 Автор вопроса
Ilya Zviagin
а не проще просто 5 раз написать вызов функции ?

А не проще 500 раз написать вызов функции?

Ruslan 🪐
А не проще 500 раз написать вызов функции?

Проще написать программу как-то по-другому. Я уверен, есть методы...

Ilya Zviagin
а не проще просто 5 раз написать вызов функции ?

Да ладно, твист через integral_constant довольно тривиальный

Ruslan-🪐 Автор вопроса
S.E.
Поочему?

Если компилятор по какой-то причине не справится с оптимизацией копирования константного массива, то это просто так копировать n байт + в дебаге точно не будет таких оптимизаций

🐈
Если компилятор по какой-то причине не справится с...

А как узнать, справился ли компилятор с оптимизацией, или нет? И что делать, если нужно, чтобы не справился?

S.E.
А как узнать, справился ли компилятор с оптимизаци...

1. Смотреть ассембли программы. 2. Вылавливать эджкейсы оптимизатора разве что.

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
Вопрос тем кто смотрит видео и слушает подкасты - как вы потом ищете нужную вам информацию? Вот статью я прочитал, потом могу искать нужную мне часть банальным поиском. Пропус...
Aleksandr Druzhinin
4
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
Коллеги, доброе утро. Запустил на удаленном хосте приложение (ручками зашел туда по ssh и запустил, не командой удаленно). Создал потом ssh-туннель, и с моей машины приложение...
Δημήτηρ
9
Карта сайта