Much more efficient generation of function signatures, updated docs
This modification taps into some newer C++14 features (if present) to
generate function signatures considerably more efficiently at compile
time rather than at run time.
With this change, pybind11 binaries are now *2.1 times* smaller compared
to the Boost.Python baseline in the benchmark. Compilation times get a
nice improvement as well.
Visual Studio 2015 unfortunately doesn't implement 'constexpr' well
enough yet to support this change and uses a runtime fallback.
diff --git a/example/example11.ref b/example/example11.ref
index 728e804..b7719b1 100644
--- a/example/example11.ref
+++ b/example/example11.ref
@@ -1,3 +1,18 @@
+Help on built-in function kw_func
+
+kkww__ffuunncc(...)
+ Signature : (x : int, y : int) -> None
+
+Help on built-in function kw_func2
+
+kkww__ffuunncc22(...)
+ Signature : (x : int = 100L, y : int = 200L) -> None
+
+Help on built-in function kw_func3
+
+kkww__ffuunncc33(...)
+ Signature : (data : str = u'Hello world!') -> None
+
kw_func(x=5, y=10)
kw_func(x=5, y=10)
kw_func(x=5, y=10)
@@ -7,13 +22,6 @@
kw_func(x=100, y=10)
kw_func(x=5, y=10)
kw_func(x=5, y=10)
-Help on built-in function kw_func
-
-kkww__ffuunncc(...) method of builtins.PyCapsule instance
- Signature : (x : int, y : int) -> None
-
-Help on built-in function kw_func2
-
-kkww__ffuunncc22(...) method of builtins.PyCapsule instance
- Signature : (x : int = 100, y : int = 200) -> None
+Caught expected exception: Incompatible function arguments. The following argument types are supported:
+ 1. (x : int = 100L, y : int = 200L) -> None