// ********************************************************************** // // Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved. // // This copy of Ice is licensed to you under the terms described in the // ICE_LICENSE file included in this distribution. // // ********************************************************************** #ifndef ICE_COMPARABLE_H #define ICE_COMPARABLE_H namespace Ice { template inline bool targetEquals(const T& lhs, const U& rhs) { if(lhs && rhs) { return *lhs == *rhs; } else { return !lhs && !rhs; } } template struct TargetEquals { bool operator()(const T& lhs, const T& rhs) const { return targetEquals(lhs, rhs); } }; template inline bool targetLess(const T& lhs, const U& rhs) { if(lhs && rhs) { return *lhs < *rhs; } else { return !lhs && rhs; } } template struct TargetLess { bool operator()(const T& lhs, const T& rhs) const { return targetLess(lhs, rhs); } }; } #endif