// bindgen-flags: --generate-inline-functions -- -std=c++11 class A { public: // Deleted function should not get a binding. void deleted() = delete; // Inline functions should get bindings, whether they are defined inline // (in the class) or out of line. inline void inline_definition() {} inline void out_of_line_definition(); // TODO: This is an edge case that we get wrong: An inline function // without a definition in the same translation unit should still get a // binding. We currently can't distinguish this case from a deleted member // function because libclang doesn't provide a direct way to query for // deleted member functions. This seems acceptable, however, as an inline // function without a definition in the same translation unit is unlikely // to be useful in practice. inline void inline_without_definition(); }; void A::out_of_line_definition() {} class B { public: // Deleted copy constructor should not get a binding. B(B&) = delete; }; class C { public: // Defaulted copy constructor should get a binding. C(C&) = default; };