C++ convert operator
Date: 2023-01-02Last modified: 2023-01-03
Table of contents
Converting to Type
works by overloading the Type()
operator.
class MyClass {
public:
operator Type() const {
// return something of type Type
}
};
For example, we could define a conversion of the MyVector
to a bool
to be false
if the vector is empty and true
otherwise.
MyVector v;
if (!v) { // call bool()
fmt::print("MyVector is empty\n");
}
v.add(42);
if (v) { // call bool()
fmt::print("First value on MyVector is {}\n", v[0]);
}
v.add(21);
v.add(7);
v.add(3);
string s = v;
fmt::print("MyVector converted to string is '{}'\n", s);
Possible output
bool() returns false
MyVector is empty
bool() returns true
First value on MyVector is 42
MyVector converted to string is '42, 21, 7, 3'