Skip to content

Commit 77ab40a

Browse files
schemborerikJohn Wellbelove
authored andcommitted
For GCC10, we should check __cplusplus >= 201709L when determining if c++20 is supported (#949)
1 parent c54ba6f commit 77ab40a

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

include/etl/multi_span.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ namespace etl
199199
//*************************************************************************
200200
/// Constructor.
201201
//*************************************************************************
202-
ETL_CONSTEXPR multi_span(span_list_type span_list_)
202+
ETL_CONSTEXPR14 multi_span(span_list_type span_list_)
203203
: span_list(span_list_)
204204
{
205205
}
@@ -209,7 +209,7 @@ namespace etl
209209
/// data() and size() member functions.
210210
//*************************************************************************
211211
template <typename TContainer>
212-
ETL_CONSTEXPR multi_span(TContainer& a) ETL_NOEXCEPT
212+
ETL_CONSTEXPR14 multi_span(TContainer& a) ETL_NOEXCEPT
213213
: span_list(a.data(), a.data() + a.size())
214214
{
215215
}
@@ -219,7 +219,7 @@ namespace etl
219219
/// data() and size() member functions.
220220
//*************************************************************************
221221
template <typename TContainer>
222-
ETL_CONSTEXPR multi_span(const TContainer& a) ETL_NOEXCEPT
222+
ETL_CONSTEXPR14 multi_span(const TContainer& a) ETL_NOEXCEPT
223223
: span_list(a.data(), a.data() + a.size())
224224
{
225225
}
@@ -228,7 +228,7 @@ namespace etl
228228
/// Constructor.
229229
//*************************************************************************
230230
template <typename TIterator>
231-
ETL_CONSTEXPR multi_span(TIterator begin_, TIterator end_)
231+
ETL_CONSTEXPR14 multi_span(TIterator begin_, TIterator end_)
232232
: span_list(etl::addressof(*begin_), etl::distance(begin_, end_))
233233
{
234234
}
@@ -237,23 +237,23 @@ namespace etl
237237
/// Constructor.
238238
//*************************************************************************
239239
template <typename TIterator>
240-
ETL_CONSTEXPR multi_span(TIterator begin_, size_t length_)
240+
ETL_CONSTEXPR14 multi_span(TIterator begin_, size_t length_)
241241
: span_list(etl::addressof(*begin_), length_)
242242
{
243243
}
244244

245245
//*************************************************************************
246246
/// Copy Constructor.
247247
//*************************************************************************
248-
ETL_CONSTEXPR multi_span(const multi_span& other)
248+
ETL_CONSTEXPR14 multi_span(const multi_span& other)
249249
: span_list(other.span_list)
250250
{
251251
}
252252

253253
//*************************************************************************
254254
/// Assignment operator
255255
//*************************************************************************
256-
ETL_CONSTEXPR multi_span& operator = (const multi_span & other)
256+
ETL_CONSTEXPR14 multi_span& operator = (const multi_span & other)
257257
{
258258
span_list = other.span_list;
259259

@@ -263,15 +263,15 @@ namespace etl
263263
//*************************************************************************
264264
///
265265
//*************************************************************************
266-
ETL_CONSTEXPR iterator begin() const
266+
ETL_CONSTEXPR14 iterator begin() const
267267
{
268268
return iterator(span_list.begin(), span_list.end());
269269
}
270270

271271
//*************************************************************************
272272
///
273273
//*************************************************************************
274-
ETL_CONSTEXPR iterator end() const
274+
ETL_CONSTEXPR14 iterator end() const
275275
{
276276
return iterator(span_list.end(), span_list.end());
277277
}
@@ -328,7 +328,7 @@ namespace etl
328328
//*************************************************************************
329329
/// Returns the number of spans in the multi_span.
330330
//*************************************************************************
331-
ETL_CONSTEXPR size_t size_spans() const ETL_NOEXCEPT
331+
ETL_CONSTEXPR14 size_t size_spans() const ETL_NOEXCEPT
332332
{
333333
return span_list.size();
334334
}

include/etl/profiles/determine_compiler_language_support.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@ SOFTWARE.
5858
#endif
5959
#elif defined(ETL_COMPILER_ARM5)
6060
#define ETL_CPP20_SUPPORTED 0
61+
#elif defined(ETL_COMPILER_GCC)
62+
#if (__GNUC__ == 10)
63+
#define ETL_CPP20_SUPPORTED (__cplusplus >= 201709L)
64+
#else
65+
#define ETL_CPP20_SUPPORTED (__cplusplus >= 202002L)
66+
#endif
6167
#else
6268
#define ETL_CPP20_SUPPORTED (__cplusplus >= 202002L)
6369
#endif

0 commit comments

Comments
 (0)