mirror of https://gitee.com/bigwinds/arangodb
70 lines
1.2 KiB
C++
70 lines
1.2 KiB
C++
/* 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 <string>
|
|
|
|
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
|