FuncTable Class Template Reference

List of all members.

Detailed Description

template<typename T>
class omni::calc::FuncTable< T >

Таблица пользовательских функций.

Класс представляет собой таблицу пользовательских функций. Позволяет добавлять, удалять и выполнять функцию по строковому имени.

Public Types

Public Member Functions


Member Typedef Documentation

typedef UserFunc<T> Function

Пользовательская функция.


Member Function Documentation

void insert ( const std::wstring &  name,
const Function f 
) [inline]

Добавить пользовательскую функцию.

Метод добавляет в таблицу новую пользовательскую функцию f с именем name. Если имя функции некорректно или функция с таким именем уже существует, то будет сгенерировано исключение.

Parameters:
[in] name Имя пользовательской функции
[in] f Пользовательская функция
Exceptions:
omni::calc::InvalidFunctionName Если имя функции не является корректным или функция с таким именем уже существует

void remove ( const std::wstring &  name  )  [inline]

Удалить пользовательскую функцию.

Метод удаляет из таблицы пользовательскую функцию с именем name.

Parameters:
[in] name Имя пользовательской функции
Exceptions:
omni::calc::InvalidFunctionName Если функции с таким именем не существует

bool exists ( const std::wstring &  name  )  const [inline]

Проверить задана ли пользовательская функция.

Метод проверяет наличие в таблице функции с именем name.

Parameters:
[in] name Имя пользовательской функции
Returns:
true Если функция существует, иначе false

T operator() ( const std::wstring &  name,
arg 
) const [inline]

Выполнить пользовательскую функцию.

Метод выполняет пользовательскую функцию с именем name. Если функции с заданным именем нет в таблице, будет сгенерировано исключение.

Parameters:
[in] name Имя пользовательской функции
[in] arg Аргумент пользовательской функции
Returns:
Результат выполнения пользовательской функции
Exceptions:
omni::calc::UnknownFunctionCall Если функции с заданным именем нет в таблице


Generated on Wed Jun 6 17:27:47 2007 for OMNI by  doxygen 1.5.2