includes = ["vector"] definitions = ''' namespace MyNS { enum class ScopedEnum { Zero = 0, One = 1, Two = 2, }; enum UNSCOPED_ENUM { ZERO = 0, ONE = 1, TWO = 2, }; enum class EnumWithGaps { Five = 5, MinusTwo = -2, Twenty = 20, }; } // MyNS template class MyClass { int n; }; template class ClassGaps { int n; }; ''' [cases] [cases.scoped_enum_type] param_types = ["const std::vector&"] setup = "return {};" [cases.scoped_enum_val_cast] param_types = ["const std::array(MyNS::ScopedEnum::Two)>&"] setup = "return {};" expect_json = '[{"staticSize":8, "dynamicSize":0, "length":2, "capacity":2, "elementStaticSize":4}]' [cases.scoped_enum_val] param_types = ["const MyClass&"] setup = "return {};" expect_json = '[{"staticSize":4, "dynamicSize":0, "exclusiveSize":0}]' [cases.scoped_enum_val_gaps] param_types = ["const ClassGaps&"] setup = "return {};" expect_json = '[{"staticSize":4, "dynamicSize":0, "exclusiveSize":0}]' [cases.scoped_enum_val_negative] param_types = ["const ClassGaps&"] setup = "return {};" expect_json = '[{"staticSize":4, "dynamicSize":0, "exclusiveSize":0}]' [cases.unscoped_enum_type] param_types = ["const std::vector&"] setup = "return {};" [cases.unscoped_enum_val_cast] param_types = ["const std::array&"] setup = "return {};" expect_json = '[{"staticSize":4, "dynamicSize":0, "length":1, "capacity":1, "elementStaticSize":4}]'