[Previous] [Contents]

## `Cat::UseOverloading` -- helper category for domains using the conversion/overloading mechanism

#### Introduction

`Cat::UseOverloading` is a helper category for domains using the conversion and overloading mechanisms of `operators::overloaded`.

#### Generating the category

`Cat::UseOverloading()`

#### Categories

`Cat::BaseCategory`

#### Details

- `Cat::UseOverloading` is a purely technical category built above `Cat::BaseCategory` which provides some basic support for those domains that uses the conversion and overloading mechanisms of the library `operators::overloaded`.
- It redefines the constructor `"new"` and the methods `"convert"` and `convert_to` to use `operators::overloaded::convert`.
- It also provides a `"initDomain"` method which allows super domains and super categories to provide initialization code (recall that the `"initDomain"` method is a special method which is called automatically once by the system just after the creation of the domain). This is typically used for declaring new conversions and new signatures for overloaded operators.

#### Method initDomain: domain initialization

- `initDomain()`

- Look for `"initDomainAdd"` methods in the domain itself, in all its super domains (as listed by `"allSuperDomains"`), and in all its categories (as listed by `"allCategories"`), and executes them one-by-one starting from the last one.
- This method is not intended to be called directly by the user. In fact, it should not be called anymore after the creation of the domain.

#### Method initDomainAdd: extra domain initialization

- `initDomainAdd()`

- Extra code to be executed by the system after the domain is created. Note that this method does not follow the usual inheritance rules!

#### Changes

- `Cat::UseOverloading` is a new category

[Previous] [Contents]

MuPAD Combinat, an open source algebraic combinatorics package