1*2bcacabbSAdam Hornacek // compile me with g++
2*2bcacabbSAdam Hornacek /* this is sample comment } */
3*2bcacabbSAdam Hornacek #include <string>
4*2bcacabbSAdam Hornacek #include <vector>
5*2bcacabbSAdam Hornacek #include <iostream>
6*2bcacabbSAdam Hornacek
7*2bcacabbSAdam Hornacek #define TEST(x) (x)
8*2bcacabbSAdam Hornacek
9*2bcacabbSAdam Hornacek class SomeClass {
10*2bcacabbSAdam Hornacek public:
SomeClass()11*2bcacabbSAdam Hornacek SomeClass() /* I'm constructor */
12*2bcacabbSAdam Hornacek : attr_(0)
13*2bcacabbSAdam Hornacek {
14*2bcacabbSAdam Hornacek std::cout << "Hello" << std::endl;
15*2bcacabbSAdam Hornacek }
16*2bcacabbSAdam Hornacek
~SomeClass()17*2bcacabbSAdam Hornacek ~SomeClass() // destructor
18*2bcacabbSAdam Hornacek {
19*2bcacabbSAdam Hornacek std::cout << "Bye" << std::endl;
20*2bcacabbSAdam Hornacek }
21*2bcacabbSAdam Hornacek
MemberFunc(int a,int b) const22*2bcacabbSAdam Hornacek int MemberFunc(int a, int b) const {
23*2bcacabbSAdam Hornacek // some member function
24*2bcacabbSAdam Hornacek return a + b;
25*2bcacabbSAdam Hornacek }
26*2bcacabbSAdam Hornacek
operator ++(int)27*2bcacabbSAdam Hornacek int operator++(int) {
28*2bcacabbSAdam Hornacek return attr_++;
29*2bcacabbSAdam Hornacek }
30*2bcacabbSAdam Hornacek
31*2bcacabbSAdam Hornacek template<typename T>
TemplateMember(std::vector<T> & v)32*2bcacabbSAdam Hornacek size_t TemplateMember(std::vector<T>& v) {
33*2bcacabbSAdam Hornacek return v.size();
34*2bcacabbSAdam Hornacek }
35*2bcacabbSAdam Hornacek
36*2bcacabbSAdam Hornacek private:
37*2bcacabbSAdam Hornacek int attr_;
38*2bcacabbSAdam Hornacek };
39*2bcacabbSAdam Hornacek
40*2bcacabbSAdam Hornacek namespace ns1 {
41*2bcacabbSAdam Hornacek
42*2bcacabbSAdam Hornacek class NamespacedClass {
43*2bcacabbSAdam Hornacek public:
SomeFunc(const std::string & arg)44*2bcacabbSAdam Hornacek static void SomeFunc(const std::string& arg) {
45*2bcacabbSAdam Hornacek std::cout << arg;
46*2bcacabbSAdam Hornacek }
47*2bcacabbSAdam Hornacek };
48*2bcacabbSAdam Hornacek
49*2bcacabbSAdam Hornacek namespace ns2 {
50*2bcacabbSAdam Hornacek
foo(int a,int b)51*2bcacabbSAdam Hornacek int foo(int a, int b) {
52*2bcacabbSAdam Hornacek SomeClass t;
53*2bcacabbSAdam Hornacek return t.MemberFunc(TEST(a), TEST(b));
54*2bcacabbSAdam Hornacek }
55*2bcacabbSAdam Hornacek
56*2bcacabbSAdam Hornacek }
57*2bcacabbSAdam Hornacek }
58*2bcacabbSAdam Hornacek
bar(int x)59*2bcacabbSAdam Hornacek int bar(int x /* } */)
60*2bcacabbSAdam Hornacek {
61*2bcacabbSAdam Hornacek // another function
62*2bcacabbSAdam Hornacek int d;
63*2bcacabbSAdam Hornacek int f;
64*2bcacabbSAdam Hornacek std::cout << TEST("test { message|$#@$!!#") << std::endl;
65*2bcacabbSAdam Hornacek d = foo(2, 4);
66*2bcacabbSAdam Hornacek f = foo(x, d);
67*2bcacabbSAdam Hornacek
68*2bcacabbSAdam Hornacek /* return
69*2bcacabbSAdam Hornacek some
70*2bcacabbSAdam Hornacek rubish
71*2bcacabbSAdam Hornacek */
72*2bcacabbSAdam Hornacek return d+f;
73*2bcacabbSAdam Hornacek }
74*2bcacabbSAdam Hornacek
75*2bcacabbSAdam Hornacek // main function
main(int argc,char * argv[])76*2bcacabbSAdam Hornacek int main(int argc, char *argv[]) {
77*2bcacabbSAdam Hornacek SomeClass c;
78*2bcacabbSAdam Hornacek int res;
79*2bcacabbSAdam Hornacek std::cout << "this is just a {sample}}" << std::endl;
80*2bcacabbSAdam Hornacek
81*2bcacabbSAdam Hornacek res = bar(20);
82*2bcacabbSAdam Hornacek std::cout << "result = {" << res << "}" << std::endl;
83*2bcacabbSAdam Hornacek
84*2bcacabbSAdam Hornacek std::cout << c.MemberFunc(1, 2) << std::endl;
85*2bcacabbSAdam Hornacek std::cout << c++ << std::endl;
86*2bcacabbSAdam Hornacek
87*2bcacabbSAdam Hornacek return 0; }
88*2bcacabbSAdam Hornacek
89