Hands a consumer package the addresses of every rxLlik* function and its
exact derivatives, so it can call them from C/C++ without an ABI dependency
on this package.
Details
R_GetCCallable() is not sufficient for that. It drops the link-time
dependency, but the consumer still compiles in a typedef'd signature and
caches a raw address: updating rxode2ll then requires the consumer to be
rebuilt, and reloading rxode2ll leaves the cached pointers dangling. This is
the same external-pointer handshake rxode2, nlmixr2est, RcppTrust and n1qn1
already use, where the consumer re-reads the list in its own .onLoad() and
therefore picks up an updated rxode2ll instead of baking one in.
The returned list is APPEND-ONLY and its order is fixed; see
inst/include/rxode2llPtrs.h, which is the matching consumer header.
Examples
length(.rxode2llPtr())
#> [1] 74