From a968888f69d94890e8851efe38ace3b9448552d7 Mon Sep 17 00:00:00 2001 From: stijn Date: Mon, 13 Nov 2023 16:04:40 +0100 Subject: py/obj: Fix mp_obj_is_type compilation with C++. Fixes issue #12951. Signed-off-by: stijn --- examples/usercmodule/cppexample/example.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'examples/usercmodule/cppexample/example.cpp') diff --git a/examples/usercmodule/cppexample/example.cpp b/examples/usercmodule/cppexample/example.cpp index 06809732a4..2df832baa7 100644 --- a/examples/usercmodule/cppexample/example.cpp +++ b/examples/usercmodule/cppexample/example.cpp @@ -1,9 +1,16 @@ extern "C" { #include +#include // Here we implement the function using C++ code, but since it's // declaration has to be compatible with C everything goes in extern "C" scope. mp_obj_t cppfunc(mp_obj_t a_obj, mp_obj_t b_obj) { + // The following no-ops are just here to verify the static assertions used in + // the public API all compile with C++. + MP_STATIC_ASSERT_STR_ARRAY_COMPATIBLE; + if (mp_obj_is_type(a_obj, &mp_type_BaseException)) { + } + // Prove we have (at least) C++11 features. const auto a = mp_obj_get_int(a_obj); const auto b = mp_obj_get_int(b_obj); -- cgit v1.2.3