1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-09 23:34:20 +00:00

Fix #946: Add standard iterator traits to CharPointer_UTF8 for compatibility with std algorithms

- Added value_type, pointer, reference, iterator_category, and difference_type typedefs
- Enables CharPointer_UTF8 to work with standard library algorithms like std::all_of
- Uses input_iterator_tag as the most appropriate category for UTF-8 character iteration
- Maintains full backward compatibility with existing code
- Tested with both GCC and Clang compilers
This commit is contained in:
Quaylyn Rimer 2025-08-03 23:56:08 -06:00
parent d6181bde38
commit ff23b25e6a

View file

@ -48,6 +48,13 @@ class CharPointer_UTF8 final
public:
using CharType = char;
// Standard iterator traits for compatibility with STL algorithms
using value_type = juce_wchar;
using pointer = juce_wchar*;
using reference = juce_wchar; // Note: returns by value since this is a proxy iterator
using iterator_category = std::input_iterator_tag;
using difference_type = std::ptrdiff_t;
explicit CharPointer_UTF8 (const CharType* rawPointer) noexcept
: data (const_cast<CharType*> (rawPointer))
{