Skip to content

Commit

Permalink
tweaks
Browse files Browse the repository at this point in the history
git-svn-id: https://svn.r-project.org/R/trunk@70992 00db46b3-68df-0310-9c12-caf00c1e9a41
  • Loading branch information
ripley committed Jul 28, 2016
1 parent 8b8a281 commit 2f90ba3
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions doc/manual/R-exts.texi
Expand Up @@ -9488,18 +9488,19 @@ Legacy header @file{S.h} cannot be used with C++.
Quite a lot of external C++ software is header-only (e.g.@: most of the
Boost `libraries' including all those supplied by package @CRANpkg{BH},
and most of Armadillo as supplied by package @CRANpkg{RcppArmadillo})
and so is compiled when an @R{} package is using it is installed. This
typically causes few problems.
and so is compiled when an @R{} package which uses it is installed.
This causes few problems.

A small number of external libraries used in @R{} packages have a C++
interface to a library of compiled code, e.g.@: packages @CRANpkg{rgdal}
and @CRANpkg{rjags}. This raises many more problems! The C++ interface
uses name-mangling which depends on the compiler, version and even C++
defines, so requires the package C++ code to be compiled in exactly the
same way as the library (and what that was is often undocumented).
Examples include use of @command{g++} @emph{vs} @command{clang++} and on
Linux, the two ABIs available for C++11 for @command{g++} with
different defaults for GCC 4.9 and 5.x.
Examples include use of @command{g++} @emph{vs} @command{clang++} or
Solaris' @command{CC}, and the two ABIs available for C++11 in
@command{g++} with different defaults for GCC 4.9 and 5.x in some Linux
distributions.

Even fewer external libraries use C++ internally but present a C
interface, such as @CRANpkg{rgeos}. These require the C++ runtime
Expand Down

0 comments on commit 2f90ba3

Please sign in to comment.