/* 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 BASIC_H #define BASIC_H #include namespace basic { struct C { // test virtuallity C(): value(1), const_value(0) {} virtual int f(int x = 10) { return x*2; } int foo(int x=1){ return x+1; } const std::string& get_name() { return name; } void set_name(const std::string& name) { this->name = name; } private: std::string name; public: // test data members static int static_value; static const int const_static_value; int value; const int const_value; // test static functions static int mul(int x, int y) { return x*y; } static double mul(double x, double y) { return x*y; } static int square(int x=2) { return x*x; } }; inline int call_f(C& c) { return c.f(); } inline int call_f(C& c, int x) { return c.f(x); } inline int get_static() { return C::static_value; } inline int get_value(C& c) { return c.value; } } #endif