SFML:如何用 std::vector 重载数据包运算符 >>?
SFML: How to overload Packet operator >> with a std::vector?
我目前正在编写一个基于 UDP 的游戏,我需要将每个连接的玩家的位置和其他数据通知每个连接到游戏的新玩家。如果我可以重载 << 和 >> 运算符来发送一个数据包,其中包含存储在服务器上的所有玩家数据。
我该如何解决这个问题?
你是这个意思吗?
template<typename T>
sf::Packet& operator<<(sf::Packet& packet, std::vector<T>& vec)
{
return packet << vec.at(0) << vec.at(1) << vec.at(2);
}
template<typename T>
sf::Packet& operator>>(sf::Packet& packet, std::vector<T>& vec)
{
return packet >> vec.at(0) >> vec.at(1) >> vec.at(2);
}
我目前正在编写一个基于 UDP 的游戏,我需要将每个连接的玩家的位置和其他数据通知每个连接到游戏的新玩家。如果我可以重载 << 和 >> 运算符来发送一个数据包,其中包含存储在服务器上的所有玩家数据。 我该如何解决这个问题?
你是这个意思吗?
template<typename T>
sf::Packet& operator<<(sf::Packet& packet, std::vector<T>& vec)
{
return packet << vec.at(0) << vec.at(1) << vec.at(2);
}
template<typename T>
sf::Packet& operator>>(sf::Packet& packet, std::vector<T>& vec)
{
return packet >> vec.at(0) >> vec.at(1) >> vec.at(2);
}