// /*-------------------------------------------------------------------*\
// | Concrete Template : Static_Array_Exchange_At_1
// \*-------------------------------------------------------------------*/
#ifndef CT_STATIC_ARRAY_EXCHANGE_AT_1
#define CT_STATIC_ARRAY_EXCHANGE_AT_1 1
///------------------------------------------------------------------------
/// Global Context --------------------------------------------------------
///------------------------------------------------------------------------
#include "AT/Static_Array/Exchange_At.h"
/*!
#include "AT/Static_Array/Kernel.h"
!*/
///------------------------------------------------------------------------
/// Interface -------------------------------------------------------------
///------------------------------------------------------------------------
concrete_template <
concrete_instance class Item,
Integer_constant lower,
Integer_constant upper,
/*!
satisfies restriction
lower <= upper
!*/
concrete_instance class Static_Array_Base
/*!
implements
abstract_instance Static_Array_Kernel <Item, lower, upper>
!*/
>
class Static_Array_Exchange_At_1 :
extends
concrete_instance Static_Array_Base,
implements
abstract_instance Static_Array_Exchange_At <Item, lower, upper>
{
public:
procedure_body Exchange_At (
preserves Integer i,
preserves Integer j
)
{
if (i != j)
{
object catalyst Item temp;
temp &= self[i];
temp &= self[j];
self[i] &= temp;
}
}
};
#endif // CT_STATIC_ARRAY_EXCHANGE_AT_1
Last modified: Thu Jan 11 17:05:57 EST 2007