classes {
fields {
field_name: "foo_again"
field_type: "std::unique_ptr<test2::HelloAgain, std::default_delete<test2::HelloAgain> >"
access: "public"
}
fields {
field_name: "bar_again"
field_type: "int"
access: "public"
}
fully_qualified_name: "test2::HelloAgain"
source_file: "./input/example2.h"
access: "public"
}
classes {
fields {
field_name: "foo_again"
field_type: "T"
access: "public"
}
fields {
field_name: "bar_again"
field_type: "int"
access: "public"
}
fully_qualified_name: "test3::ByeAgain"
source_file: "./input/example2.h"
access: "public"
}
classes {
fields {
field_name: "foo_again"
field_type: "double"
access: "public"
}
fields {
field_name: "bar_again"
field_type: "int"
access: "public"
}
fully_qualified_name: "test3::ByeAgain"
source_file: "./input/example2.h"
template_info {
template_parameters {
field_type: "double"
}
}
access: "public"
}
classes {
fields {
field_name: "foo_again"
field_type: "float"
access: "public"
}
fields {
field_name: "bar_Again"
field_type: "float"
access: "public"
}
fully_qualified_name: "test3::ByeAgain"
source_file: "./input/example2.h"
template_info {
template_parameters {
field_type: "float"
}
}
access: "public"
}
classes {
fields {
field_name: "a"
field_type: "int"
access: "public"
}
fully_qualified_name: "test3::Outer"
source_file: "./input/example2.h"
access: "public"
}
classes {
fields {
field_name: "b"
field_type: "int"
access: "private"
}
fully_qualified_name: "test3::Outer::Inner"
source_file: "./input/example2.h"
access: "private"
}
functions {
function_name: "test3::ByeAgain::method_foo"
mangled_function_name: "method_foo_ZN5test38ByeAgain10method_fooET_"
source_file: "./input/example2.h"
parameters {
field_name: ""
field_type: "T"
default_arg: false
}
return_type: "T"
access: "public"
template_kind: 0
}
functions {
function_name: "test3::ByeAgain<double>::method_foo"
mangled_function_name: "method_foo_ZN5test38ByeAgainIdE10method_fooEd"
source_file: "./input/example2.h"
parameters {
field_name: ""
field_type: "double"
default_arg: false
}
return_type: "double"
access: "public"
template_kind: 2
}
functions {
function_name: "test3::ByeAgain<float>::method_foo"
mangled_function_name: "method_foo_ZN5test38ByeAgainIfE10method_fooEi"
source_file: "./input/example2.h"
parameters {
field_name: ""
field_type: "int"
default_arg: false
}
return_type: "float"
access: "public"
template_kind: 0
}
functions {
function_name: "test3::Begin"
mangled_function_name: "Begin_ZN5test35BeginET_T0_"
source_file: "./input/example2.h"
parameters {
field_name: "arg1"
field_type: "T1"
default_arg: false
}
parameters {
field_name: "arg2"
field_type: "T2"
default_arg: false
}
return_type: "bool"
access: "public"
template_kind: 1
template_info {
template_parameters {
field_name: "T1"
}
template_parameters {
field_name: "T2"
}
}
}
functions {
function_name: "test3::Begin"
mangled_function_name: "Begin_ZN5test35BeginIfiEEbT_T0_"
source_file: "./input/example2.h"
parameters {
field_name: "arg1"
field_type: "float"
default_arg: false
}
parameters {
field_name: "arg2"
field_type: "int"
default_arg: false
}
return_type: "bool"
access: "public"
template_kind: 3
template_info {
template_parameters {
field_type: "float"
}
template_parameters {
field_type: "int"
}
}
}
functions {
function_name: "test3::Begin"
mangled_function_name: "Begin_ZN5test35BeginIifEEbT_T0_"
source_file: "./input/example2.h"
parameters {
field_name: "a"
field_type: "int"
default_arg: false
}
parameters {
field_name: "b"
field_type: "float"
default_arg: false
}
return_type: "bool"
access: "public"
template_kind: 3
template_info {
template_parameters {
field_type: "int"
}
template_parameters {
field_type: "float"
}
}
}
functions {
function_name: "test3::End"
mangled_function_name: "End_ZN5test33EndEf"
source_file: "./input/example2.h"
parameters {
field_name: "arg"
field_type: "float"
default_arg: true
}
return_type: "bool"
access: "public"
template_kind: 0
}
enums {
enum_name: "Foo_s"
enum_type: "unsigned int"
enum_fields {
enum_field_name: "Foo_s::foosball"
enum_field_value: 10
}
enum_fields {
enum_field_name: "Foo_s::foosbat"
enum_field_value: 11
}
}
enums {
enum_name: "test3::Kind"
enum_type: "unsigned int"
enum_fields {
enum_field_name: "test3::Kind::kind1"
enum_field_value: 24
}
enum_fields {
enum_field_name: "test3::Kind::kind2"
enum_field_value: 2312
}
}