Skip to content

Commit

Permalink
Update user_guide.rst
Browse files Browse the repository at this point in the history
  • Loading branch information
pfernique committed Sep 2, 2016
1 parent 1d176c5 commit ee12aac
Showing 1 changed file with 2 additions and 3 deletions.
5 changes: 2 additions & 3 deletions doc/user_guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,7 @@ Memory management
*C++* libraries expose in their interfaces either raw pointers, shared pointers or references, while *Python* handles memory allocation and garbage collection automatically.
The concepts of pointer or references are thus not meaningful in *Python*.
These language differences entail several problems in the memory management of *C++* components into *Python*.
Moreover the :code:`const` correctness which is a *C++* idiom doesn't exists in *Python*.
A special attention is therefore required for dealing with :code:`const` correctness, references (:code:`\&`) and pointers (:code:`*`) that are highly used in *C++*.
A special attention is therefore required for dealing with references (:code:`&`) and pointers (:code:`*`) that are highly used in *C++*.

Error management
*C++* exceptions need to be consistently managed in *Python*.
Expand All @@ -50,7 +49,7 @@ Error management
Dependency management between components
The management of multiple dependencies between *C++* libraries with *Python* bindings is required at run-time from *Python*.
*C++* libraries tends to have dependencies.
For instance the *C++* **Standard Template Library** containers \citep{PLMS00} are used in many *C++* libraries (e.g :code:`std::vector`, :code:`std::set`).
For instance the *C++* **Standard Template Library** containers :cite:`PLMS00` are used in many *C++* libraries (e.g :code:`std::vector`, :code:`std::set`).
For such cases, it doesn't seem relevant that every wrapped *C++* library contains wrappers for usual **STL** containers (e.g. :code:`std::vector< double >`, :code:`std::set< int >`).
Moreover, loading in the *Python* interpreter multiple compiled libraries sharing different wrappers from same *C++* components could lead to serious side effects.
It is therefore required that dependencies across different library bindings can be handled automatically.

0 comments on commit ee12aac

Please sign in to comment.