Ada Programming/Libraries/Interfaces.C.Pointers
This language feature is available from Ada 95 on.
Interfaces.C.Pointers is a unit of the Predefined Language Environment since Ada 95.
Specification
edit-- Standard Ada library specification -- Copyright (c) 2003-2018 Maxim Reznik <reznikmm@gmail.com> -- Copyright (c) 2004-2016 AXE Consultants -- Copyright (c) 2004, 2005, 2006 Ada-Europe -- Copyright (c) 2000 The MITRE Corporation, Inc. -- Copyright (c) 1992, 1993, 1994, 1995 Intermetrics, Inc. -- SPDX-License-Identifier: BSD-3-Clause and LicenseRef-AdaReferenceManual -- -------------------------------------------------------------------------generic
type
Indexis
(<>);type
Elementis
private
;type
Element_Arrayis
array
(Indexrange
<>)of
aliased
Element; Default_Terminator : Element;package
Interfaces.C.Pointersis
pragma
Preelaborate (Pointers);type
Pointeris
access
all
Element;function
Value (Ref :in
Pointer; Terminator :in
Element := Default_Terminator)return
Element_Array;function
Value (Ref :in
Pointer; Length :in
ptrdiff_t)return
Element_Array; Pointer_Error :exception
; -- C-style Pointer arithmeticfunction
"+" (Left :in
Pointer; Right :in
ptrdiff_t)return
Pointer;function
"+" (Left :in
ptrdiff_t; Right :in
Pointer)return
Pointer;function
"-" (Left :in
Pointer; Right :in
ptrdiff_t)return
Pointer;function
"-" (Left :in
Pointer; Right :in
Pointer)return
ptrdiff_t;procedure
Increment (Ref :in
out
Pointer);procedure
Decrement (Ref :in
out
Pointer);pragma
Convention (Intrinsic, "+");pragma
Convention (Intrinsic, "-");pragma
Convention (Intrinsic, Increment);pragma
Convention (Intrinsic, Decrement);function
Virtual_Length (Ref :in
Pointer; Terminator :in
Element := Default_Terminator)return
ptrdiff_t;procedure
Copy_Terminated_Array (Source :in
Pointer; Target :in
Pointer; Limit :in
ptrdiff_t := ptrdiff_t'Last; Terminator :in
Element := Default_Terminator);procedure
Copy_Array (Source :in
Pointer; Target :in
Pointer; Length :in
ptrdiff_t);end
Interfaces.C.Pointers;
See also
editWikibook
editExternal examples
edit- Search for examples of
Interfaces.C.Pointers
in: Rosetta Code, GitHub (gists), any Alire crate or this Wikibook. - Search for posts related to
Interfaces.C.Pointers
in: Stack Overflow, comp.lang.ada or any Ada related page.
Ada Reference Manual
editAda 95
editAda 2005
editAda 2012
editOpen-Source Implementations
editFSF GNAT
- Specification: i-cpoint.ads
- Body: i-cpoint.adb
drake
- Specification: interfaces/i-cpoint.ads
- Body: interfaces/i-cpoint.adb