~ RULE_6_2_A_do_not_use_system_dependent_type ~ RULE_3_2_F_use_representitive_classname_for_cpp_filename ~ RULE_6_5_B_do_not_use_macro_for_constants ~ RULE_A_3_avoid_too_deep_blocks ~ RULE_6_1_G_write_less_than_200_lines_for_function ~ RULE_5_2_C_provide_doxygen_class_comment_on_class_def ~ RULE_5_2_C_provide_doxygen_namespace_comment_on_namespace_def ~ RULE_5_2_C_provide_doxygen_struct_comment_on_struct_def ~ RULE_5_3_A_provide_doxygen_function_comment_on_function_in_header ~ RULE_5_3_A_provide_doxygen_function_comment_on_function_in_impl ~ RULE_6_1_E_do_not_use_more_than_5_paramters_in_function