Common: Replace enable_if with concepts and other minor modernizations.

This commit is contained in:
Jordan Woyak
2025-05-05 19:30:53 -05:00
parent 210b5cbf66
commit 2dc975fa92
9 changed files with 32 additions and 50 deletions

View File

@@ -3,26 +3,25 @@
#pragma once
#include <type_traits>
#include <SFML/Network/Packet.hpp>
#include "Common/CommonTypes.h"
#include "Common/EnumUtils.h"
#include "Common/Swap.h"
#include "Common/TypeUtils.h"
sf::Packet& operator>>(sf::Packet& packet, Common::BigEndianValue<u16>& data);
sf::Packet& operator>>(sf::Packet& packet, Common::BigEndianValue<u32>& data);
sf::Packet& operator>>(sf::Packet& packet, Common::BigEndianValue<u64>& data);
template <typename Enum, std::enable_if_t<std::is_enum_v<Enum>>* = nullptr>
template <Common::Enum Enum>
sf::Packet& operator<<(sf::Packet& packet, Enum e)
{
using Underlying = std::underlying_type_t<Enum>;
packet << static_cast<Underlying>(e);
packet << Common::ToUnderlying(e);
return packet;
}
template <typename Enum, std::enable_if_t<std::is_enum_v<Enum>>* = nullptr>
template <Common::Enum Enum>
sf::Packet& operator>>(sf::Packet& packet, Enum& e)
{
using Underlying = std::underlying_type_t<Enum>;