Можно ли перегрузить оператор static_cast вне класса?

Можно ли перегрузить оператор static_cast вне класса? К примеру операторы +, - и тд, можно перегрузить в локальном нэймспейсе не как член класса, можно сделать что то подобное например с оператором operator int(); ?


Ответы (1 шт):

Автор решения: Harry

Конечно.

[explicit] operator type() [const]

Например :):

class R
{
public:
    operator int() const { return rand(); }
};


int main()
{
    R r;
    for(int i = 0; i < 10; ++i)
        cout << i + r << endl;
}
→ Ссылка