1/* 2 * Copyright Andy Tompkins 2006. 3 * Distributed under the Boost Software License, Version 1.0. 4 * (See accompanying file LICENSE_1_0.txt or copy at 5 * https://www.boost.org/LICENSE_1_0.txt) 6 */ 7/*! 8 * \file uuid/detail/uuid_generic.ipp 9 * 10 * \brief This header contains generic implementation of \c boost::uuid operations. 11 */ 12 13#ifndef BOOST_UUID_DETAIL_UUID_GENERIC_IPP_INCLUDED_ 14#define BOOST_UUID_DETAIL_UUID_GENERIC_IPP_INCLUDED_ 15 16#include <string.h> 17 18namespace boost { 19namespace uuids { 20 21inline bool uuid::is_nil() const BOOST_NOEXCEPT 22{ 23 for (std::size_t i = 0; i < sizeof(data); ++i) 24 { 25 if (data[i] != 0U) 26 return false; 27 } 28 return true; 29} 30 31inline void uuid::swap(uuid& rhs) BOOST_NOEXCEPT 32{ 33 uuid tmp = *this; 34 *this = rhs; 35 rhs = tmp; 36} 37 38inline bool operator== (uuid const& lhs, uuid const& rhs) BOOST_NOEXCEPT 39{ 40 return memcmp(lhs.data, rhs.data, sizeof(lhs.data)) == 0; 41} 42 43inline bool operator< (uuid const& lhs, uuid const& rhs) BOOST_NOEXCEPT 44{ 45 return memcmp(lhs.data, rhs.data, sizeof(lhs.data)) < 0; 46} 47 48} // namespace uuids 49} // namespace boost 50 51#endif // BOOST_UUID_DETAIL_UUID_GENERIC_IPP_INCLUDED_ 52