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]

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