diff --git a/src/c-wrapper/internal/c-tools.h b/src/c-wrapper/internal/c-tools.h index 26694d757..026080352 100644 --- a/src/c-wrapper/internal/c-tools.h +++ b/src/c-wrapper/internal/c-tools.h @@ -83,6 +83,7 @@ public: // Get c/cpp ptr helpers. // --------------------------------------------------------------------------- + // Get Object. template< typename CppType, typename CType, @@ -103,6 +104,7 @@ public: return reinterpret_cast *>(cObject)->cppPtr; } + // Get ClonableObject. template< typename CppType, typename CType, @@ -123,6 +125,7 @@ public: return reinterpret_cast *>(cObject)->cppPtr; } + // Set Object. template< typename CppType, typename = typename std::enable_if::value, CppType>::type @@ -133,6 +136,7 @@ public: cppObject->setProperty("LinphonePrivate::Wrapper::cBackPtr", cObject); } + // Set ClonableObject. template< typename CppType, typename = typename std::enable_if::value, CppType>::type @@ -148,6 +152,7 @@ public: } } + // Macro helpers. template static T *getCppPtr (const std::shared_ptr &cppObject) { return cppObject.get(); @@ -172,7 +177,10 @@ public: // Get c back ptr helpers. // --------------------------------------------------------------------------- - template + template< + typename CppType, + typename = typename std::enable_if::value, CppType>::type + > static inline typename CppTypeToCType::type *getCBackPtr (const std::shared_ptr &cppObject) { typedef typename CppTypeToCType::type RetType; @@ -186,7 +194,10 @@ public: return reinterpret_cast(value); } - template + template< + typename CppType, + typename = typename std::enable_if::value, CppType>::type + > static inline typename CppTypeToCType::type *getCBackPtr (const CppType *cppObject) { typedef typename CppTypeToCType::type RetType;