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

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

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

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

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

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

31 ответов

19 просмотров

Я ещё только учу массивы, но сразу вижу ошибку Не стоит называть массив, как 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. Вылавливать эджкейсы оптимизатора разве что.

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
Карта сайта