diff options
author | Nick Fitzgerald <fitzgen@gmail.com> | 2017-01-23 10:57:22 -0800 |
---|---|---|
committer | Nick Fitzgerald <fitzgen@gmail.com> | 2017-01-23 10:57:22 -0800 |
commit | 28a3784b778e5d10ce492d8434aa7b489615452d (patch) | |
tree | 2d0be42533e245ee3c004f64b68e644da933843e | |
parent | 287c56011183d80a79334ea48d71b4c88f39bcec (diff) |
Expand documentation about C++ bindings generation
-rw-r--r-- | README.md | 14 |
1 files changed, 13 insertions, 1 deletions
@@ -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 |