たとえば、ある型から別の型への変換が明示的なキャストによって利用できない場合、明示static_cast
的な変換演算子を定義することは可能でしょうか?
編集:
次の明示的な変換演算子を定義する方法を探しています。
class SmallInt {
public:
// The Default Constructor
SmallInt(int i = 0): val(i) {
if (i < 0 || i > 255)
throw std::out_of_range("Bad SmallInt initializer");
}
// Conversion Operator
operator int() const {
return val;
}
private:
std::size_t val;
};
int main()
{
SmallInt si(100);
int i = si; // here, I want an explicit conversion.
}