xref: /OpenGrok/opengrok-indexer/src/test/resources/sources/c/sample.cxx (revision 2bcacabbe843448903326d34ff21a265b5f37596)
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