// /*-------------------------------------------------------------------*\
// | Concrete Template : Array_Are_In_Order_At_C
// \*-------------------------------------------------------------------*/
#ifndef CT_ARRAY_ARE_IN_ORDER_AT_C
#define CT_ARRAY_ARE_IN_ORDER_AT_C 1
///------------------------------------------------------------------------
/// Global Context --------------------------------------------------------
///------------------------------------------------------------------------
/*!
#include "AT/General/Are_In_Order.h"
#include "AT/Array/Are_In_Order_At.h"
#include "AT/Array/Kernel.h"
!*/
///------------------------------------------------------------------------
/// Interface -------------------------------------------------------------
///------------------------------------------------------------------------
concrete_template <
concrete_instance class Item,
/*!
concrete_instance utility_class Item_Are_In_Order,
implements
abstract_instance General_Are_In_Order <Item>
!*/
concrete_instance class Array_Are_In_Order_At_Base
/*!
implements
abstract_instance Array_Are_In_Order_At <Item,
Item_Are_In_Order>,
checks
abstract_instance Array_Kernel <Item>
!*/
>
class Array_Are_In_Order_At_C :
checks
concrete_instance Array_Are_In_Order_At_Base
{
public:
function_body Boolean Are_In_Order_At (
preserves Integer i,
preserves Integer j
)
{
assert (self.Lower_Bound () <= i,
"self.lb <= i");
assert (i <= self.Upper_Bound (),
"i <= self.ub");
assert (self.Lower_Bound () <= j,
"self.lb <= j");
assert (j <= self.Upper_Bound (),
"j <= self.ub");
return self.Array_Are_In_Order_At_Base::Are_In_Order_At (i, j);
}
};
#endif // CT_ARRAY_ARE_IN_ORDER_AT_C
Last modified: Wed Nov 04 19:59:02 EST 2009