Skip to content

Commit

Permalink
Merge pull request #503 from mtnpke/msvc-initializer-list
Browse files Browse the repository at this point in the history
Add MSVC support to initializer_list
  • Loading branch information
grojo-ea committed Aug 16, 2023
2 parents 089eb20 + 6a10d86 commit 05f4b4a
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions include/EASTL/initializer_list.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,14 @@
initializer_list() EA_NOEXCEPT // EA_NOEXCEPT requires a recent version of EABase.
: mpArray(NULL), mArraySize(0) { }

#if defined(EA_COMPILER_MSVC)
// MSVC generates constructor calls with two pointers instead of one pointer + size. The constructor is
// public.
// See: https://docs.microsoft.com/en-us/cpp/standard-library/initializer-list-class#initializer_list
initializer_list(const_iterator pFirst, const_iterator pLast) EA_NOEXCEPT
: mpArray(pFirst), mArraySize(pLast - pFirst) { }
#endif

size_type size() const EA_NOEXCEPT { return mArraySize; }
const_iterator begin() const EA_NOEXCEPT { return mpArray; } // Must be const_iterator, as initializer_list (and its mpArray) is an immutable temp object.
const_iterator end() const EA_NOEXCEPT { return mpArray + mArraySize; }
Expand Down

0 comments on commit 05f4b4a

Please sign in to comment.