eif_*_function

Overview

This page documents all CECIL functions of the form eif_*_function where "*" is a supported type such as "integer", "bit", "character", "real", etc.

Synopsis

#include "eif_cecil.h" EIF_REFERENCE_FUNCTION eif_reference_function (char * name, int * tid); EIF_INTEGER_FUNCTION eif_integer_function (char * name, int * tid); EIF_CHARACTER_FUNCTION eif_character_function (char * name, int * tid); EIF_REAL_FUNCTION eif_real_function (char * name, int * tid); EIF_DOUBLE_FUNCTION eif_double_function (char * name, int * tid); EIF_BOOLEAN_FUNCTION eif_boolean_function (char * name, int * tid); EIF_POINTER_FUNCTION eif_pointer_function (char * name, int * tid); EIF_BIT_FUNCTION eif_bit_function (char * name, int * tid);

Description

These functions return the address of the Eiffel function of name name from the class, which type identifier is tid.

Use this function For an Eiffel function returning
eif_reference_function Eiffel reference
eif_integer_function Eiffel integer
eif_character_function Eiffel character
eif_real_function Eiffel real
eif_double_function Eiffel double
eif_boolean_function Eiffel boolean
eif_pointer_function Eiffel pointer
eif_bit_function Eiffel bit

If the visible exception is enabled, it raises an visible exception upon failure.

Return value

Successful: The address of the function.

Failing: NULL (function does not exist or is not visible).

Notes

The Eiffel function cannot be a C external. In this case, you must directly call the C routine.

The return value is an address: to use it as a routine, you must call it with arguments or at least with ().

No argument type checking is done. You may cast the address of an Eiffel routine, obtained with these functions, when calling it with real arguments.

If the function returns an Eiffel reference, you must protect it with eif_protect.

Conformance

ISE Eiffel 4.4 and later.

Compatibility

Compatibility with deprecated functions is shown in this table.

Function name Equivalent deprecated function name
eif_reference_function eif_fn_ref
eif_integer_function eif_fn_int
eif_real_function eif_fn_float
eif_double_function eif_fn_double
eif_character_function eif_fn_char
eif_bit_function eif_fn_bit
eif_boolean_function eif_fn_bool
eif_pointer_function eif_fn_pointer

See Also:
eif_type_id
eif_protect
eif_procedure