Size: a a a

2020 August 14

D

Danya in supapro.cxx
Я могу конечно ручками написать всё, но не хочу
источник

Е

Егор in supapro.cxx
А это оптимизация такой прикол сделала или это то что Дане нужно https://godbolt.org/z/sGfTYb?
источник

ПК

Побитый Кирпич... in supapro.cxx
Danya
В С++20 нет возможности проитерироваться в компайл тайме?
Типа
constinit auto i = 0;
while (i < n) {
 foo<i>()
 i++;
}
Примерно так:
1) Делаешь make_index_sequence<n>
2) Полученную Indexes... i используешь в связке с fold expression по оператору запятая
источник

Е

Егор in supapro.cxx
походу не первое, без constexpr асм генерит
источник

D

Danya in supapro.cxx
Нет, это мне не нужно
источник

D

Danya in supapro.cxx
Мне надо пропихивать значение в template
источник

D

Danya in supapro.cxx
Ты внутри этой функции не пропихнёшь i в template
источник

Е

Егор in supapro.cxx
Danya
Ты внутри этой функции не пропихнёшь i в template
а, в этом плане
источник

ПК

Побитый Кирпич... in supapro.cxx
template <size_t... I>
void call_foo(std::index_sequence<I...>) {
 (foo<I>(), ...);
}
источник

ПК

Побитый Кирпич... in supapro.cxx
Как то так вроде
источник

ПК

Побитый Кирпич... in supapro.cxx
Но это не проверялось, возможно синтаксис fold-а провтыкал
источник

ПК

Побитый Кирпич... in supapro.cxx
Вызываешь:
call_foo(std::make_index_sequence<n>());
источник

Е

Егор in supapro.cxx
Побитый Кирпич
template <size_t... I>
void call_foo(std::index_sequence<I...>) {
 (foo<I>(), ...);
}
а в 20-м с темплейтед лямбдами нельзя это как-то внутри одной функции сделать?
источник

ПК

Побитый Кирпич... in supapro.cxx
Егор
а в 20-м с темплейтед лямбдами нельзя это как-то внутри одной функции сделать?
У меня итак одна функция
источник

Е

Егор in supapro.cxx
Побитый Кирпич
У меня итак одна функция
call_foo нужно отдельно писать
источник

D

Danya in supapro.cxx
Побитый Кирпич
У меня итак одна функция
он имел в виду без call_foo
источник

ПК

Побитый Кирпич... in supapro.cxx
Ну может можно, я не знаю, С++20 не юзаю пока
источник

D

Danya in supapro.cxx
Побитый Кирпич
template <size_t... I>
void call_foo(std::index_sequence<I...>) {
 (foo<I>(), ...);
}
А можно как-нибудь соптимизировать до того, чтобы в template принимался <std::size_t N>?
источник

ПК

Побитый Кирпич... in supapro.cxx
Danya
А можно как-нибудь соптимизировать до того, чтобы в template принимался <std::size_t N>?
Что именно соптимизировать?
источник

D

Danya in supapro.cxx
Объявление call_foo
источник