199451b44SJordan Rupprecht namespace cpp_namespace { 299451b44SJordan Rupprecht struct CppStruct { 399451b44SJordan Rupprecht int field = 1111; 499451b44SJordan Rupprecht functioncpp_namespace::CppStruct599451b44SJordan Rupprecht int function() { 699451b44SJordan Rupprecht return 2222; 799451b44SJordan Rupprecht } 899451b44SJordan Rupprecht }; 999451b44SJordan Rupprecht 1099451b44SJordan Rupprecht union CppUnion { 1199451b44SJordan Rupprecht char field_char; 1299451b44SJordan Rupprecht short field_short; 1399451b44SJordan Rupprecht int field_int; 1499451b44SJordan Rupprecht }; 1599451b44SJordan Rupprecht GetCppStruct()1699451b44SJordan Rupprecht CppStruct GetCppStruct() { 1799451b44SJordan Rupprecht return CppStruct(); 1899451b44SJordan Rupprecht } 1999451b44SJordan Rupprecht 2099451b44SJordan Rupprecht CppStruct global; 2199451b44SJordan Rupprecht GetCppStructPtr()2299451b44SJordan Rupprecht CppStruct *GetCppStructPtr() { 2399451b44SJordan Rupprecht return &global; 2499451b44SJordan Rupprecht } 2599451b44SJordan Rupprecht } 2699451b44SJordan Rupprecht 2799451b44SJordan Rupprecht int global = 3333; 2899451b44SJordan Rupprecht main()2999451b44SJordan Rupprechtint main() 3099451b44SJordan Rupprecht { 3199451b44SJordan Rupprecht cpp_namespace::CppStruct cpp_struct = cpp_namespace::GetCppStruct(); 3299451b44SJordan Rupprecht cpp_struct.function(); 3399451b44SJordan Rupprecht 34*6a85b9d1SEmre Kultursay cpp_namespace::CppStruct &cpp_struct_ref = cpp_struct; 35*6a85b9d1SEmre Kultursay cpp_struct_ref.function(); 36*6a85b9d1SEmre Kultursay 3799451b44SJordan Rupprecht int field = 4444; 3899451b44SJordan Rupprecht 3999451b44SJordan Rupprecht cpp_namespace::CppUnion cpp_union; 4099451b44SJordan Rupprecht cpp_union.field_int = 5555; 4199451b44SJordan Rupprecht 4299451b44SJordan Rupprecht int cpp_scalar = 6666; 4399451b44SJordan Rupprecht 4499451b44SJordan Rupprecht cpp_namespace::CppStruct cpp_array[16]; 4599451b44SJordan Rupprecht 4699451b44SJordan Rupprecht cpp_namespace::CppStruct *cpp_pointer = cpp_namespace::GetCppStructPtr(); 4799451b44SJordan Rupprecht 4899451b44SJordan Rupprecht return 0; // Break here 4999451b44SJordan Rupprecht } 50