30 Input/output library [input.output]

30.10 File systems [filesystems]

30.10.27 Class path [fs.class.path]

30.10.27.3 path requirements [fs.path.req]

В дополнение к требованиям ([fs.req]), указанные параметры шаблона функции Source должны быть одним из следующих:

  • basic_­string<EcharT, traits, Allocator>. Аргумент функции const Source& source должен иметь эффективный диапазон [source.begin(), source.end()).

  • basic_­string_­view<EcharT, traits>. Аргумент функции const Source& source должен иметь эффективный диапазон [source.begin(), source.end()).

  • Тип, отвечающий требованиям итератора ввода, который выполняет итерацию по NTCTS. Тип значения должен быть типом закодированного символа. Аргумент функции const Source& source должен иметь эффективный диапазон, [source, end) где end - первое значение итератора со значением элемента, равным iterator_­traits<Source>​::​value_­type().

  • Символьный массив, который после преобразования массива в указатель приводит к указателю на начало NTCTS. Тип значения должен быть типом закодированного символа. Аргумент функции const Source& source должен иметь эффективный диапазон, [source, end) где end - первое значение итератора со значением элемента, равным iterator_­traits<decay_­t<Source>>​::​value_­type().

Функции, принимающие указанные параметры шаблона Source , не должны участвовать в разрешении перегрузки, если либо

  • Source является специализацией basic_­string или basic_­string_­view, или

  • qualified-id iterator_­traits<decay_­t<Source>>​::​value_­type является действительным , и обозначает , возможно , const закодированный тип символов ([temp.deduct]).

[ Note: Посмотрите, path conversions как указанные выше типы значений и их кодировки преобразуются в path​::​value_­type и его кодировку. ]end note

Аргументы типа Source не должны быть нулевыми указателями.