1------------------------------------------------------------------------------ 2-- -- 3-- GNAT LIBRARY COMPONENTS -- 4-- -- 5-- ADA.CONTAINERS.GENERIC_ANONYMOUS_ARRAY_SORT -- 6-- -- 7-- S p e c -- 8-- -- 9-- Copyright (C) 2004-2021, Free Software Foundation, Inc. -- 10-- -- 11-- GNAT is free software; you can redistribute it and/or modify it under -- 12-- terms of the GNU General Public License as published by the Free Soft- -- 13-- ware Foundation; either version 3, or (at your option) any later ver- -- 14-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- 15-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- 16-- or FITNESS FOR A PARTICULAR PURPOSE. -- 17-- -- 18-- As a special exception under Section 7 of GPL version 3, you are granted -- 19-- additional permissions described in the GCC Runtime Library Exception, -- 20-- version 3.1, as published by the Free Software Foundation. -- 21-- -- 22-- You should have received a copy of the GNU General Public License and -- 23-- a copy of the GCC Runtime Library Exception along with this program; -- 24-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- 25-- <http://www.gnu.org/licenses/>. -- 26-- -- 27-- This unit was originally developed by Matthew J Heaney. -- 28------------------------------------------------------------------------------ 29 30-- Allows an anonymous array (or array-like container) to be sorted. Generic 31-- formal Less returns the result of comparing the elements designated by the 32-- indexes, and generic formal Swap exchanges the designated elements. 33 34generic 35 type Index_Type is (<>); 36 with function Less (Left, Right : Index_Type) return Boolean is <>; 37 with procedure Swap (Left, Right : Index_Type) is <>; 38 39procedure Ada.Containers.Generic_Anonymous_Array_Sort 40 (First, Last : Index_Type'Base); 41pragma Pure (Ada.Containers.Generic_Anonymous_Array_Sort); 42-- Reorders the elements of Container such that the elements are sorted 43-- smallest first as determined by the generic formal "<" operator provided. 44-- Any exception raised during evaluation of "<" is propagated. 45-- 46-- The actual function for the generic formal function "<" is expected to 47-- return the same value each time it is called with a particular pair of 48-- element values. It should not modify Container and it should define a 49-- strict weak ordering relationship: irreflexive, asymmetric, transitive, and 50-- in addition, if x < y for any values x and y, then for all other values z, 51-- (x < z) or (z < y). If the actual for "<" behaves in some other manner, 52-- the behavior of the instance of Generic_Anonymous_Array_Sort is 53-- unspecified. The number of times Generic_Anonymous_Array_Sort calls "<" is 54-- unspecified. 55