LINUX.ORG.RU

История изменений

Исправление dimgel, (текущая версия) :

template<class CharT, uint lengthBytes, uint maxLength> class std::basic_c_string

Или даже вычислять lengthBytes из maxLength. using Path = BasicCString<char,PATH_MAX-1> – шикарно ж (-1 т.к. PATH_MAX включает 0-terminator, который я буду обеспечивать для всех строк аналогично std::string). Всё на стеке. Копирование и конкатенация полностью аналогично strcpy() и strcat(), только размер не надо каждый раз вычислять и о переполнении заботиться; у двух строк должен совпадать только CharT. И rfind() быстрый. Пожалуй, добавлю себе в TODO, будет совсем нечего делать – запилю и заюзаю в check-link-consistency.

Исправление dimgel, :

template<class CharT, uint lengthBytes, uint maxLength> class std::basic_c_string

Или даже вычислять lengthBytes из maxLength. using Path = BasicCString<char,PATH_MAX-1> – шикарно ж (-1 т.к. PATH_MAX включает 0-terminator, который я буду обеспечивать для всех строк аналогично std::string). Всё на стеке. Копирование и конкатенация полностью аналогично strcpy() и strcat(), только размер не надо каждый раз вычислять и о переполнении заботиться. И rfind() быстрый. Пожалуй, добавлю себе в TODO, будет совсем нечего делать – запилю и заюзаю в check-link-consistency.

Исправление dimgel, :

template<class CharT, uint lengthBytes, uint maxLength> class std::basic_c_string

Или даже вычислять lengthBytes из maxLength. using Path = BasicCString<char,PATH_MAX-1> – шикарно ж (-1 т.к. PATH_MAX включает 0-terminator, который я буду обеспечивать для всех строк аналогично std::string). Пожалуй, добавлю себе в TODO, будет совсем нечего делать – запилю и заюзаю в check-link-consistency.

Исходная версия dimgel, :

template<class CharT, uint lengthBytes, uint maxLength> class std::basic_c_string

Или даже вычислять lengthBytes из maxLength.