diff options
author | Emiel Bruijntjes <emiel.bruijntjes@copernica.com> | 2014-03-11 22:49:19 +0100 |
---|---|---|
committer | Emiel Bruijntjes <emiel.bruijntjes@copernica.com> | 2014-03-11 22:49:19 +0100 |
commit | 8c73a24872b5589cbb714be9c8588c7bf81c8563 (patch) | |
tree | d99c45763b66fefdfca2408713ae2a6927f1f90e /src/base.cpp | |
parent | 41d008988b482c643bd11464ba071de05f183d84 (diff) |
implemented __toString, __toInteger, __toFloat and __toBool methods
Diffstat (limited to 'src/base.cpp')
-rw-r--r-- | src/base.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/base.cpp b/src/base.cpp index a5dc7b3..a9faac3 100644 --- a/src/base.cpp +++ b/src/base.cpp @@ -182,7 +182,79 @@ Value Base::__invoke(Parameters ¶ms) // unreachable code return nullptr; } + +/** + * Cast the object to a string + * + * This method is called when an object is casted to a string, or when + * it is used in a string context + * + * @return Value The object as a string + */ +Value Base::__toString() +{ + // throw an exception that will be caught in the ClassBase class, + // so that the default implementation of the function can be called + throw NotImplemented(); + // unreachable code + return nullptr; +} + +/** + * Cast the object to an integer + * + * This method is called when an object is casted to an integer, or when + * it is used in an integer context + * + * @return int Integer value + */ +long Base::__toInteger() +{ + // throw an exception that will be caught in the ClassBase class, + // so that the default implementation of the function can be called + throw NotImplemented(); + + // unreachable code + return 0; +} + +/** + * Cast the object to a float + * + * This method is called when an object is casted to a float, or when it + * is used in a float context + * + * @return double Floating point value + */ +double Base::__toFloat() +{ + // throw an exception that will be caught in the ClassBase class, + // so that the default implementation of the function can be called + throw NotImplemented(); + + // unreachable code + return 0.0; +} + +/** + * Cast the object to a boolean + * + * This method is called when an object is casted to a bool, or when it + * is used in a boolean context + * + * @return bool + */ +bool Base::__toBool() +{ + // throw an exception that will be caught in the ClassBase class, + // so that the default implementation of the function can be called + throw NotImplemented(); + + // unreachable code + return false; +} + /** * End namespace */ |