12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /*
- Copyright 2023 Glen Joseph Fernandes
- ([email protected])
- Distributed under the Boost Software License, Version 1.0.
- (http://www.boost.org/LICENSE_1_0.txt)
- */
- #ifndef BOOST_CORE_DATA_HPP
- #define BOOST_CORE_DATA_HPP
- #include <initializer_list>
- #include <cstddef>
- namespace boost {
- template<class C>
- inline constexpr auto
- data(C& c) noexcept(noexcept(c.data())) -> decltype(c.data())
- {
- return c.data();
- }
- template<class C>
- inline constexpr auto
- data(const C& c) noexcept(noexcept(c.data())) -> decltype(c.data())
- {
- return c.data();
- }
- template<class T, std::size_t N>
- inline constexpr T*
- data(T(&a)[N]) noexcept
- {
- return a;
- }
- template<class T>
- inline constexpr const T*
- data(std::initializer_list<T> l) noexcept
- {
- return l.begin();
- }
- } /* boost */
- #endif
|