span.h:141:24: error: ‘is_standard_layout_v’ is not a member of ‘std’; did you mean ‘is_standard_layout’?
I'm trying to build monero-0.18.3.4 on Gentoo Lignux and getting the following errors. It used to build well in august, so perhaps some dep updated? What could be done about this?
```
In file included from /var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/byte_slice.h:37,
                 from /var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/src/byte_slice.cpp:36:
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h: In function ‘epee::span<const unsigned char> epee::to_byte_span(span<const T>)’:
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:141:24: error: ‘is_standard_layout_v’ is not a member of ‘std’; did you mean ‘is_standard_layout’?
  141 |     static_assert(std::is_standard_layout_v<T>, "type must have standard layout");
      |                        ^~~~~~~~~~~~~~~~~~~~
      |                        is_standard_layout
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:141:46: error: expected primary-expression before ‘>’ token
  141 |     static_assert(std::is_standard_layout_v<T>, "type must have standard layout");
      |                                              ^
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:141:47: error: expected primary-expression before ‘,’ token
  141 |     static_assert(std::is_standard_layout_v<T>, "type must have standard layout");
      |                                               ^
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:142:24: error: ‘has_unique_object_representations_v’ is not a member of ‘std’
  142 |     static_assert(std::has_unique_object_representations_v<T>, "type must be trivially copyable with no padding");
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:142:61: error: expected primary-expression before ‘>’ token
  142 |     static_assert(std::has_unique_object_representations_v<T>, "type must be trivially copyable with no padding");
      |                                                             ^
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:142:62: error: expected primary-expression before ‘,’ token
  142 |     static_assert(std::has_unique_object_representations_v<T>, "type must be trivially copyable with no padding");
      |                                                              ^
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h: In function ‘constexpr epee::span<unsigned char> epee::to_mut_byte_span(T&)’:
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:152:24: error: ‘is_standard_layout_v’ is not a member of ‘std’; did you mean ‘is_standard_layout’?
  152 |     static_assert(std::is_standard_layout_v<value_type>, "value type must have standard layout");
      |                        ^~~~~~~~~~~~~~~~~~~~
      |                        is_standard_layout
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:152:55: error: expected primary-expression before ‘>’ token
  152 |     static_assert(std::is_standard_layout_v<value_type>, "value type must have standard layout");
      |                                                       ^
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:152:56: error: expected primary-expression before ‘,’ token
  152 |     static_assert(std::is_standard_layout_v<value_type>, "value type must have standard layout");
      |                                                        ^
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:153:24: error: ‘has_unique_object_representations_v’ is not a member of ‘std’
  153 |     static_assert(std::has_unique_object_representations_v<value_type>, "value type must be trivially copyable with no padding");
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:153:70: error: expected primary-expression before ‘>’ token
  153 |     static_assert(std::has_unique_object_representations_v<value_type>, "value type must be trivially copyable with no padding");
      |                                                                      ^
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:153:71: error: expected primary-expression before ‘,’ token
  153 |     static_assert(std::has_unique_object_representations_v<value_type>, "value type must be trivially copyable with no padding");
      |                                                                       ^
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h: In function ‘epee::span<const unsigned char> epee::as_byte_span(const T&)’:
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:162:24: error: ‘is_standard_layout_v’ is not a member of ‘std’; did you mean ‘is_standard_layout’?
  162 |     static_assert(std::is_standard_layout_v<T>, "type must have standard layout");
      |                        ^~~~~~~~~~~~~~~~~~~~
      |                        is_standard_layout
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:162:46: error: expected primary-expression before ‘>’ token
  162 |     static_assert(std::is_standard_layout_v<T>, "type must have standard layout");
      |                                              ^
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:162:47: error: expected primary-expression before ‘,’ token
  162 |     static_assert(std::is_standard_layout_v<T>, "type must have standard layout");
      |                                               ^
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:163:24: error: ‘has_unique_object_representations_v’ is not a member of ‘std’
  163 |     static_assert(std::has_unique_object_representations_v<T>, "type must be trivially copyable with no padding");
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:163:61: error: expected primary-expression before ‘>’ token
  163 |     static_assert(std::has_unique_object_representations_v<T>, "type must be trivially copyable with no padding");
      |                                                             ^
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:163:62: error: expected primary-expression before ‘,’ token
  163 |     static_assert(std::has_unique_object_representations_v<T>, "type must be trivially copyable with no padding");
      |                                                              ^
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h: In function ‘epee::span<unsigned char> epee::as_mut_byte_span(T&)’:
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:172:24: error: ‘is_standard_layout_v’ is not a member of ‘std’; did you mean ‘is_standard_layout’?
  172 |     static_assert(std::is_standard_layout_v<T>, "type must have standard layout");
      |                        ^~~~~~~~~~~~~~~~~~~~
      |                        is_standard_layout
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:172:46: error: expected primary-expression before ‘>’ token
  172 |     static_assert(std::is_standard_layout_v<T>, "type must have standard layout");
      |                                              ^
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:172:47: error: expected primary-expression before ‘,’ token
  172 |     static_assert(std::is_standard_layout_v<T>, "type must have standard layout");
      |                                               ^
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:173:24: error: ‘has_unique_object_representations_v’ is not a member of ‘std’
  173 |     static_assert(std::has_unique_object_representations_v<T>, "type must be trivially copyable with no padding");
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:173:61: error: expected primary-expression before ‘>’ token
  173 |     static_assert(std::has_unique_object_representations_v<T>, "type must be trivially copyable with no padding");
      |                                                             ^
/var/tmp/portage/net-p2p/monero-0.18.3.4-r1/work/monero-0.18.3.4/contrib/epee/include/span.h:173:62: error: expected primary-expression before ‘,’ token
  173 |     static_assert(std::has_unique_object_representations_v<T>, "type must be trivially copyable with no padding");
      |                                                              ^
```