<commit_before>
namespace {
   class ForwardedUnnamedType;
}

namespace xmlTypedefSelection {

   class RealXmlSelClass {};
  
   typedef RealXmlSelClass TypedefXmlSelClass;
   typedef TypedefXmlSelClass TypedefXmlSelClass2;

} // ns xmlTypedefSelection

namespace testclasses {


   template < int i > class testTemplInt {
      int foo() { return i; }
   };

   static const int staticint = 1;

   class TestFunctionReturnTypes {
   public:

      int returnFundamental() { return 0; }
      A returnCompound() { A * a = new A(); return *a; }
      A * returnPointer1 () { return new A(); }
      int * returnPointer2 () { return 0; }
      void returnVoid() {}
      const int & returnRef1() { return staticint; }
      A & returnRef2() { A * a = new A(); return *a; }
   };



   class Outer {
   public:
      class Inner {
      public : 
         class IInner {};
      };
   };


   class TemplFun {
   public: 
      template <class T> void foooo(T /*t*/) {}
   };


   class DataMembers {

      int i;
      int* pi;
      int** ppi;
      int pa[5];
      int paa[5][5];

   };

   class Typedefs {

      typedef int MYINT;
      typedef MYINT* PMYINT;
      typedef const MYINT** PPMYINT;
      typedef const PMYINT& RPMYINT;
      typedef const PPMYINT * PPPMYINT;

      struct A {};
      typedef A A;
      
      struct B {};
      typedef B C;
      typedef C B;

   };

   typedef int MyInt;
   typedef std::vector<MyInt> MyVector;
  
   class WithTypedefMember {
      int m_i;
      MyInt m_mi;
      std::vector<MyInt> m_v;
      MyVector m_mv;
   };<commit_msg>enhance test for function pointers<commit_after>
namespace {
   class ForwardedUnnamedType;
}

namespace xmlTypedefSelection {

   class RealXmlSelClass {};
  
   typedef RealXmlSelClass TypedefXmlSelClass;
   typedef TypedefXmlSelClass TypedefXmlSelClass2;

} // ns xmlTypedefSelection

namespace testclasses {


   template < int i > class testTemplInt {
      int foo() { return i; }
   };

   static const int staticint = 1;

   class TestFunctionReturnTypes {
   public:

      int returnFundamental() { return 0; }
      A returnCompound() { A * a = new A(); return *a; }
      A * returnPointer1 () { return new A(); }
      int * returnPointer2 () { return 0; }
      void returnVoid() {}
      const int & returnRef1() { return staticint; }
      A & returnRef2() { A * a = new A(); return *a; }
   };



   class Outer {
   public:
      class Inner {
      public : 
         class IInner {};
      };
   };


   class TemplFun {
   public: 
      template <class T> void foooo(T /*t*/) {}
   };


   class DataMembers {

      typedef int(*MYFUNPTR)(const std::vector<double>&, const std::vector<double>&);

      int i;
      int* pi;
      int** ppi;
      int pa[5];
      int paa[5][5];
      MYFUNPTR fPtr2;
      int (*fPtr)(int,char,bool);

   };

   class Typedefs {

      typedef int MYINT;
      typedef MYINT* PMYINT;
      typedef const MYINT** PPMYINT;
      typedef const PMYINT& RPMYINT;
      typedef const PPMYINT * PPPMYINT;

      struct A {};
      typedef A A;
      
      struct B {};
      typedef B C;
      typedef C B;

   };

   typedef int MyInt;
   typedef std::vector<MyInt> MyVector;
  
   class WithTypedefMember {
      int m_i;
      MyInt m_mi;
      std::vector<MyInt> m_v;
      MyVector m_mv;
   };
{'fraction_non_alphanumeric': 0.10671462829736211, 'fraction_numerical': 0.006894484412470024, 'mean_word_length': 2.1451460885956646, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4993483', 'n_tokens_mistral': 1145, 'n_tokens_neox': 1068, 'n_words': 311}