/* Copyright Bruno da Silva de Oliveira 2003. Use, modification and distribution is subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef OPERATORS_H #define OPERATORS_H namespace operators { struct C { static double x; double value; const C operator+(const C other) const { C c; c.value = value + other.value; return c; } operator int() const { return (int)value; } double operator()() { return C::x; } double operator()(double other) { return C::x + other; } operator const char*() { return "C"; } }; inline const C operator*(const C& lhs, const C& rhs) { C c; c.value = lhs.value * rhs.value; return c; } } #endif