#include <string>

int foo(int a) { // Comment between function name and arguments
   
   return a;
}

// Comment before main function

int main() {
   #pragma before scope
   {
      int innerA = 0;
   }
   //! Inline Comment
   //! Inline Comment with comma -> "
   // Simple inline
   /*Multiline in a sigle line*/
   /*Multiline single line with closing in next line
   */
   /**
   * Multiline style with
   * several lines
   */
   #pragma generic pragma
   #pragma generic multi \
   line \
   pragma
   int a;
   // Comment originally above while   
   while(1) { // Comment in front of while open bracket // Comment in front of while close bracket
      // Comment inside empty body
   }
   if(1) { // Comment in front of if
   }
   try {
   }
   catch (...) { // Comment in front of catch
   }
   
	std::string charArray1 = "Comment start /* inside string";
	std::string charArray2 = "a string";   
   
   return 0;
   // Comment at the end of function
}

// Comment after main function