diff --git a/lib/SConscript b/lib/SConscript index 812573932..0767dc0b2 100644 --- a/lib/SConscript +++ b/lib/SConscript @@ -48,4 +48,6 @@ libs = env.BuildModules( ], ) +env.Append(SDK_HEADERS=[File("#/lib/callback-connector/callback-connector.h")]) + Return("libs") diff --git a/lib/callback-connector/callback-connector.h b/lib/callback-connector/callback-connector.h index 10fec3e2d..dd99c5b26 100644 --- a/lib/callback-connector/callback-connector.h +++ b/lib/callback-connector/callback-connector.h @@ -1,10 +1,13 @@ #ifndef CALLBACKCONNECTOR_H #define CALLBACKCONNECTOR_H + +#ifdef __cplusplus #include namespace cbc { namespace Details { -template class FuncMemberWrapper { +template +class FuncMemberWrapper { public: FuncMemberWrapper() = delete; using member_fun_t = Ret (T::*)(Args...); @@ -43,7 +46,8 @@ template typename FuncMemberWrapper::const_member_fun_t FuncMemberWrapper::const_member{}; -template struct FunctorWrapper { +template +struct FunctorWrapper { public: static std::function functor; static auto instatiate(Functor fn) { @@ -75,7 +79,8 @@ auto const_instantiate(T* t, Ret (T::*ptr)(Args...) const) { return FuncMemberWrapper::instantiate(t, ptr); } -template auto const_instantiate(T* t, Func ptr) { +template +auto const_instantiate(T* t, Func ptr) { return const_instantiate(t, ptr); } @@ -91,9 +96,11 @@ auto obtain_connector(T* t, Ret (T::*ptr)(Args...) const) { return Details::FuncMemberWrapper::instantiate(t, ptr); } -template auto obtain_connector(Functor functor) { +template +auto obtain_connector(Functor functor) { return Details::deducer(std::move(functor), &Functor::operator()); } } //end of cbc scope +#endif // __cplusplus #endif // CALLBACKCONNECTOR_H diff --git a/targets/f18/api_symbols.csv b/targets/f18/api_symbols.csv index bdfa8c7a4..f2190e43f 100644 --- a/targets/f18/api_symbols.csv +++ b/targets/f18/api_symbols.csv @@ -40,6 +40,7 @@ Header,+,applications/services/storage/storage.h,, Header,+,lib/bit_lib/bit_lib.h,, Header,+,lib/ble_profile/extra_profiles/hid_profile.h,, Header,+,lib/ble_profile/extra_services/hid_service.h,, +Header,+,lib/callback-connector/callback-connector.h,, Header,+,lib/datetime/datetime.h,, Header,+,lib/digital_signal/digital_sequence.h,, Header,+,lib/digital_signal/digital_signal.h,, diff --git a/targets/f7/api_symbols.csv b/targets/f7/api_symbols.csv index d856dc694..fed083cad 100644 --- a/targets/f7/api_symbols.csv +++ b/targets/f7/api_symbols.csv @@ -41,6 +41,7 @@ Header,+,applications/services/storage/storage.h,, Header,+,lib/bit_lib/bit_lib.h,, Header,+,lib/ble_profile/extra_profiles/hid_profile.h,, Header,+,lib/ble_profile/extra_services/hid_service.h,, +Header,+,lib/callback-connector/callback-connector.h,, Header,+,lib/datetime/datetime.h,, Header,+,lib/digital_signal/digital_sequence.h,, Header,+,lib/digital_signal/digital_signal.h,,