diff options
Diffstat (limited to 'pw_polyfill/standard_library_public/pw_polyfill/standard_library/cstddef.h')
-rw-r--r-- | pw_polyfill/standard_library_public/pw_polyfill/standard_library/cstddef.h | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/pw_polyfill/standard_library_public/pw_polyfill/standard_library/cstddef.h b/pw_polyfill/standard_library_public/pw_polyfill/standard_library/cstddef.h deleted file mode 100644 index fc6bfa26c..000000000 --- a/pw_polyfill/standard_library_public/pw_polyfill/standard_library/cstddef.h +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2020 The Pigweed Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); you may not -// use this file except in compliance with the License. You may obtain a copy of -// the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -// License for the specific language governing permissions and limitations under -// the License. -#pragma once - -#include <cstddef> - -#include "pw_polyfill/standard_library/namespace.h" - -// Defines the std::byte type if it is not present. -#ifndef __cpp_lib_byte -#define __cpp_lib_byte 201603L - -_PW_POLYFILL_BEGIN_NAMESPACE_STD - -enum class byte : unsigned char {}; - -template <typename I> -constexpr I to_integer(byte b) noexcept { - return I(b); -} - -constexpr byte operator|(byte l, byte r) noexcept { - return byte(static_cast<unsigned int>(l) | static_cast<unsigned int>(r)); -} - -constexpr byte operator&(byte l, byte r) noexcept { - return byte(static_cast<unsigned int>(l) & static_cast<unsigned int>(r)); -} - -constexpr byte operator^(byte l, byte r) noexcept { - return byte(static_cast<unsigned int>(l) ^ static_cast<unsigned int>(r)); -} - -constexpr byte operator~(byte b) noexcept { - return byte(~static_cast<unsigned int>(b)); -} - -template <typename I> -constexpr byte operator<<(byte b, I shift) noexcept { - return byte(static_cast<unsigned int>(b) << shift); -} - -template <typename I> -constexpr byte operator>>(byte b, I shift) noexcept { - return byte(static_cast<unsigned int>(b) >> shift); -} - -constexpr byte& operator|=(byte& l, byte r) noexcept { return l = l | r; } -constexpr byte& operator&=(byte& l, byte r) noexcept { return l = l & r; } -constexpr byte& operator^=(byte& l, byte r) noexcept { return l = l ^ r; } - -template <typename I> -constexpr byte& operator<<=(byte& b, I shift) noexcept { - return b = b << shift; -} - -template <typename I> -constexpr byte& operator>>=(byte& b, I shift) noexcept { - return b = b >> shift; -} - -_PW_POLYFILL_END_NAMESPACE_STD - -#endif // __cpp_lib_byte |