// /*-------------------------------------------------------------------*\
// | Concrete Template : Array_Are_In_Order_At_1
// \*-------------------------------------------------------------------*/
#ifndef CT_ARRAY_ARE_IN_ORDER_AT_1
#define CT_ARRAY_ARE_IN_ORDER_AT_1 1
///------------------------------------------------------------------------
/// Global Context --------------------------------------------------------
///------------------------------------------------------------------------
#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_Base
/*!
implements
abstract_instance Array_Kernel <Item>
!*/
>
class Array_Are_In_Order_At_1 :
extends
concrete_instance Array_Base,
implements
abstract_instance Array_Are_In_Order_At <Item, Item_Are_In_Order>
{
public:
function_body Boolean Are_In_Order_At (
preserves Integer i,
preserves Integer j
)
{
object Boolean answer;
if (i == j)
{
answer = true;
}
else
{
object catalyst Item temp;
temp &= self[i];
answer = Item_Are_In_Order::Are_In_Order (temp, self[j]);
self[i] &= temp;
}
return answer;
}
};
#endif // CT_ARRAY_ARE_IN_ORDER_AT_1
Last modified: Thu Jan 11 17:05:57 EST 2007