You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.9 KiB
C++
75 lines
1.9 KiB
C++
// Copyright (C) 2003 Davis E. King (davis@dlib.net)
|
|
// License: Boost Software License See LICENSE.txt for the full license.
|
|
#ifndef DLIB_MAP_PAIr_INTERFACE_
|
|
#define DLIB_MAP_PAIr_INTERFACE_
|
|
|
|
namespace dlib
|
|
{
|
|
|
|
// ----------------------------------------------------------------------------------------
|
|
|
|
template <
|
|
typename T1,
|
|
typename T2
|
|
>
|
|
class map_pair
|
|
{
|
|
/*!
|
|
POINTERS AND REFERENCES TO INTERNAL DATA
|
|
None of the functions in map_pair will invalidate
|
|
pointers or references to internal data when called.
|
|
|
|
WHAT THIS OBJECT REPRESENTS
|
|
this object is used to return the key/value pair used in the
|
|
map and hash_map containers when using the enumerable interface.
|
|
|
|
note that the enumerable interface is defined in
|
|
interfaces/enumerable.h
|
|
!*/
|
|
|
|
public:
|
|
typedef T1 key_type;
|
|
typedef T2 value_type;
|
|
|
|
virtual ~map_pair(
|
|
)=0;
|
|
|
|
virtual const T1& key(
|
|
) const =0;
|
|
/*!
|
|
ensures
|
|
- returns a const reference to the key
|
|
!*/
|
|
|
|
virtual const T2& value(
|
|
) const =0;
|
|
/*!
|
|
ensures
|
|
- returns a const reference to the value associated with key
|
|
!*/
|
|
|
|
virtual T2& value(
|
|
)=0;
|
|
/*!
|
|
ensures
|
|
- returns a non-const reference to the value associated with key
|
|
!*/
|
|
|
|
protected:
|
|
|
|
// restricted functions
|
|
map_pair<T1,T2>& operator=(const map_pair<T1,T2>&) {return *this;} // no assignment operator
|
|
|
|
};
|
|
|
|
// destructor does nothing
|
|
template <typename T1,typename T2>
|
|
map_pair<T1,T2>::~map_pair () {}
|
|
|
|
// ----------------------------------------------------------------------------------------
|
|
|
|
}
|
|
|
|
#endif // DLIB_MAP_PAIr_INTERFACE_
|
|
|