Semantic Object Operator. More...
#include <sosimp.h>
Public Member Functions | |
SOO (void(*const p_fun)(Context &), const char *p_str) | |
Ctor. | |
SOO * | dup () const override |
Creates a new instance as copy following the red book definition. More... | |
std::string | opequal () const override |
For operators '=', 'cvs' and 'stack'. More... | |
OTCode | ot () const override |
Returns an OTCode. More... | |
std::string | type () const override |
Returns a type name. More... | |
bool | equal (const SO *p_other) const override |
Equality. More... | |
void | exec (Context &k) const |
Call the core code. | |
![]() | |
SO (bool p_exec=false) | |
Ctor. | |
virtual | ~SO ()=default |
Virtual dtor. More... | |
bool | getExec () const |
Getter for exec_. | |
void | setExec (bool p_exec) |
Setter for exec_. | |
virtual size_t | getSize () const |
Getter for the number of characters or number of objects. More... | |
virtual SO * | dup () const =0 |
Creates a new instance as copy following the red book definition. More... | |
virtual SO * | clone () const |
Creates a new instance as copy with deep cloning. More... | |
virtual std::string | opequal () const =0 |
For operators '=', 'cvs' and 'stack'. More... | |
virtual std::string | opequalequal () const |
For operators '==' and 'pstack'. More... | |
virtual OTCode | ot () const =0 |
Returns an OTCode. More... | |
virtual std::string | type () const =0 |
Returns a type name. More... | |
virtual bool | equal (const SO *) const =0 |
Equality. More... | |
virtual bool | gt (const SO *) const |
Greater than. More... | |
virtual bool | ge (const SO *) const |
Greater or equal. More... | |
![]() | |
Counter (Counter< SO > &&)=delete | |
Counter< SO > & | operator= (const Counter< SO > &)=delete |
Counter< SO > & | operator= (Counter< SO > &&)=delete |
Private Member Functions | |
bool | invariant () const noexcept override |
Checks class invariants. More... | |
Private Attributes | |
void(*const | core_ )(Context &) |
The core code, a C++ implementation of the operator. | |
const char *const | srep_ |
A name just for representation. More... | |
Additional Inherited Members | |
![]() | |
static int | getTotalCounter () |
Static getter for totaly created objects. | |
static int | getAliveCounter () |
Static getter for objects alive. | |
static int | getWatermarkCounter () |
Static getter for the object counter watermark. | |
![]() | |
Counter () | |
Ctor. | |
Counter (const Counter< SO > &) | |
Copy ctor. | |
~Counter () | |
Dtor. | |
virtual bool | invariant () const noexcept |
Checks the invariants of the class in which it is defined. More... | |
Semantic Object Operator.
The operator object links to the core code of an operator. These objects are generated as values in the dictionaries systemdict and kryptodict of the startup configuration of the interpreter.
|
inlineoverridevirtual |
Creates a new instance as copy following the red book definition.
Implements SO.
|
inlineoverridevirtual |
Equality.
Equality means: SOL und SOM are always equal.
For SOD and SOK, share_ptr<> points to the same object.
For SOA, share_ptr<> points to the same object, but empty arrays are equal nonetheless.
For SOO and SOo the function pointer must be the same.
Otherwise the value must be the same, even for SOS with shared_ptr<>.
Implements SO.
|
inlineoverrideprivatevirtualnoexcept |
Checks class invariants.
Reimplemented from DbC.
|
inlineoverridevirtual |
For operators '=', 'cvs' and 'stack'.
Implements SO.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
private |
A name just for representation.
We aren't the owner.