dlib C++ Library - sequence_compare_abstract.h

// Copyright (C) 2003 Davis E. King (davis@dlib.net)
// License: Boost Software License See LICENSE.txt for the full license.
#undef DLIB_SEQUENCE_COMPARe_ABSTRACT_
#ifdef DLIB_SEQUENCE_COMPARe_ABSTRACT_
#include "sequence_kernel_abstract.h"
#include "../algs.h"
namespace dlib
{
 template <
 typename seq_base
 >
 class sequence_compare : public seq_base
 {
 /*!
 REQUIREMENTS ON T
 T must implement operator< for its type and
 T must implement operator== for its type
 REQUIREMENTS ON SEQUENCE_BASE
 must be an implementation of sequence/sequence_kernel_abstract.h
 POINTERS AND REFERENCES TO INTERNAL DATA
 operator== and operator< do not invalidate pointers or references to 
 data members
 WHAT THIS EXTENSION DOES FOR sequence
 This gives a sequence the ability to compare itself to other 
 sequences using the < and == operators. 
 !*/
 public:
 bool operator< (
 const sequence_compare& rhs
 ) const;
 /*!
 ensures
 - returns true if there exists an integer j such that 0 <= j < size() 
 and for all integers i such that 0 <= i < j where it is true that
 (*this)[i] <= rhs[i] and (*this)[j] < rhs[j] 
 - returns false if there is no j that will satisfy the above conditions
 !*/
 bool operator== (
 const sequence_compare& rhs
 ) const;
 /*!
 ensures
 - returns true if for all i: (*this)[i] == rhs[i] else returns false 
 !*/
 };
 template <
 typename seq_base
 >
 inline void swap (
 sequence_compare<seq_base>& a, 
 sequence_compare<seq_base>& b 
 ) { a.swap(b); } 
 /*!
 provides a global swap function
 !*/
}
#endif // DLIB_SEQUENCE_COMPARe_ABSTRACT_

AltStyle によって変換されたページ (->オリジナル) /