template<typename tPair>
struct second_t {
typename tPair::second_type operator()(const tPair& p) const { return p.second; }
};
template<typename tMap>
second_t<typename tMap::value_type> second(const tMap& m) { return second_t<typename tMap::value_type>(); }
void Return(std::map<CClient *, CPacket *> &Packets)
{
::EnterCriticalSection(&m_csPacketPool);
std::transform(Packets.begin(), Packets.end(), std::back_inserter(m_q_PacketsReady), second(Packets));
::LeaveCriticalSection(&m_csPacketPool);
}