Код: Выделить всё
std::vector foo = some_generator_function();
std::span bar {foo};
/* Wrapper for C API that uses bar->data() and bar->size_bytes()
* if bar != nullptr, guaranteed not to change any data in bar.
* In some cases bar is constructed from a const C array.
*/
do_smth (&bar);
Теперь я пытаюсь обернуть это в отдельную функцию:
Код: Выделить всё
void do_wrap (const std::vector& foo) {
std::span bar (foo);
do_smth (&bar);
}
ошибка: нет соответствующей функции для вызова 'std::span ::span(const std::vector&)'`
Точнее, const std::vector& не удовлетворяет ограничения.
Есть ли для этого какая-то причина? На данный момент я подозреваю, что квалификатор const.
Построение как bar (foo.data(), foo.size()) сообщает об аналогичной ошибке.
Компиляция с помощью g++ 14.2.0, MinGW64.
Подробнее здесь: https://stackoverflow.com/questions/793 ... stdvectort
Мобильная версия