summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Fitzgerald <fitzgen@gmail.com>2017-01-23 10:57:22 -0800
committerNick Fitzgerald <fitzgen@gmail.com>2017-01-23 10:57:22 -0800
commit28a3784b778e5d10ce492d8434aa7b489615452d (patch)
tree2d0be42533e245ee3c004f64b68e644da933843e
parent287c56011183d80a79334ea48d71b4c88f39bcec (diff)
Expand documentation about C++ bindings generation
-rw-r--r--README.md14
1 files changed, 13 insertions, 1 deletions
diff --git a/README.md b/README.md
index c416489b..9ef2f6e8 100644
--- a/README.md
+++ b/README.md
@@ -156,11 +156,23 @@ There are a few options documented when running `./bindgen --help`.
### C++
-This fork of rust-bindgen can handle a number of C++ features.
+`bindgen` can handle most C++ features, but not all of them (C++ is hard!)
+
+Notable C++ features that are unsupported or only partially supported:
+
+* Partial template specialization
+* Traits templates
+* SFINAE
+* Instantiating new template specializations
When passing in header files, the file will automatically be treated as C++ if
it ends in ``.hpp``. If it doesn't, ``-x c++`` can be used to force C++ mode.
+You must use whitelisting when working with C++ to avoid pulling in all of the
+`std::*` types, some of which `bindgen` cannot handle. Additionally, you may
+want to blacklist other types that `bindgen` stumbles on, or make `bindgen`
+treat certain types as opaque.
+
### Annotations
The translation of classes, structs, enums, and typedefs can be adjusted using