У меня есть кодовая база, которая широко использует CUDA, которая, к сожалению, поддерживает только C ++ 14 на сегодняшний день.Тем не менее, я все еще хочу использовать string_view, который является функцией C ++ 17.Реализация относительно проста, тем более что мне не требуются функции 'find'.
Однако для работы мне нужно хеширование.Стандарт обязывает, что std :: hash для string_view должен быть равен хешу строки, созданной из string_view (и я намерен полагаться на эту гарантию).Существует ли стандартный способ получения выходных данных из std :: hash без необходимости временного создания строкового объекта, что может привести к неоптимизируемому выделению кучи (по этому пути string-view-lite отправился)?Я бы предпочел не полагаться на копирование алгоритма из конкретной реализации stdlib, так как это может привести к сбою в будущем или уже нарушит компиляцию с более старыми версиями.
В качестве альтернативы, есть ли способ разрешить MSVC (РЕДАКТИРОВАТЬ: v14.16) использовать std :: string_view в C ++ 14-mode, который NVCC также распознает?Было бы замечательно, если бы у Clang и GCC была похожая опция, так как однажды кодовая база могла бы мигрировать из MSVC.