From 84401c74731927a237ccd8e7b59444d3f0630664 Mon Sep 17 00:00:00 2001 From: clyne Date: Fri, 26 Jun 2020 18:11:57 -0400 Subject: [PATCH] Add support for range-based for loops --- to_string.hpp | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/to_string.hpp b/to_string.hpp index 21b5f48..1d88b1a 100644 --- a/to_string.hpp +++ b/to_string.hpp @@ -43,19 +43,15 @@ struct to_string_t { } } - /** - * Allows implicit conversion of this object to a `char *`. - */ - constexpr operator char_type *() { - return buf; - } + // Support implicit casting to `char *` or `const char *`. + constexpr operator char_type *() { return buf; } + constexpr operator const char_type *() const { return buf; } - /** - * Allows implicit conversion of this object to a `const char *`. - */ - constexpr operator const char_type *() const { - return buf; - } + // Support range-based for loops + constexpr auto begin() { return buf; } + constexpr auto begin() const { return buf; } + constexpr auto end() { return buf + sizeof(buf) / sizeof(buf[0]); } + constexpr auto end() const { return buf + sizeof(buf) / sizeof(buf[0]); } }; /**