If constexpr инициализировать константную ссылкуC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 If constexpr инициализировать константную ссылку

Сообщение Anonymous »

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

Код: Выделить всё

template 
void FooNaive( const std::vector& vec )
{
std::vector vecAsFloat;
if constexpr ( std::is_same_v )
vecAsFloat = vec;   // expensive copy I want to avoid
else
{
vecAsFloat.reserve( vec.size() );
for ( const auto& s : vec )
vecAsFloat.push_back( ConvertExpensiveStruct( s ) );   // 

Подробнее здесь: [url]https://stackoverflow.com/questions/79262104/if-constexpr-to-initiallize-a-const-reference[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»