cpp11::messages()
cpp11::stop()
and cpp11::warning()
. Set the CPP11_USE_FMT
macro to use this feature in your package. (@sbearrows, #169, #208)as_double()
and as_integer()
methods to coerce integers to doubles and doubles to integers to doubles (@sbearrows, #46)cpp11::matrix
iterators can now be used either row-wise or column-wise (the default) depending on the user’s choice (@alyst, #229)writable::r_vector
default constructors now return a 0 length vector when converted to SEXP
(#166)r_vector
constructors now disallow implicit construction with named arguments (#237)r_vector.attr()
methods now return const objects, so it is a compile time error to try to assign to them (#237)+
and +=
operators of r_vector::[const_]iterator
to conform the iterators concept: +=
updates the iterator, and +
returns the updated copy, while keeping the original unchanged (@alyst, #231)cpp11::sexp
s (#224).Call calls
in cpp11.cpp file (@sbearrows, #170)cpp_register()
now includes attribute_visible
in the init function, so packages compiled with C_VISIBILITY
will find the init function.cpp_source()
on the same file more than once (@sbearrows, #202)cpp11::linking_to
(@sbearrows, #193)cpp11::stop()
and replaced with C++ exceptions (@sbearrows, #203)x.empty()
method to check if a vector is empty (@sbearrows, #182)x.named()
method to check if a vector is named (@sbearrows, #186)na()
free function to return the NA sentinels for R objects (@sbearrows, #179)tools::package_native_routine_registration_skeleton()
(@sbearrows, #171)cpp11::unwind_protect()
and cpp11::safe
(#154)cpp_source()
now gets an argument dir
to allow customized temporary directory to store generated source files. It makes it easier to debug C++ source files in non-package project via source mapping. (@renkun-ken, #156)cpp_register()
now uses symbols exclusively in the .Call()
interface. This allows it to be more robust in interactive use with the pkgload package.cpp_source()
gains a cxx_std
argument to control which C++ standard is used. This allows you to use code from C++14
and later standards with cpp_source(). (#100)cxx_std
chunk option to control the C++ standard used.cpp_source()
now has much more informative error messages when compilation fails (#125, #139)cpp_source()
now uses a unique name for the DLL, so works when run multiple times on the same source file on Windows (#143)writable::list_of<T>
now supports modification of vectors as intended (#131).tools::package_native_routine_registration_skeleton()
are no longer swallowed (#134)cpp_source()
can now accept a source file called cpp11.cpp
(#133)named_arg
now explicitly protect their values, avoiding protection issues when using large inputs. tidyverse/readr#1145r_string(std::string)
now uses Rf_mkCharLenCE()
instead of Rf_mkChar()
, which avoids the performance cost of checking the string length.r_vector::const_iterator::operator*
is now a const method (#113, @bkietz, @xhochy)r_bool
added as an adapter between bool
and Rboolean
values (#57, @bkietz)
data_frame()
objects now have the number of rows correctly set as real length, not the reserved length (#91)
Fixed potential memory leak in cpp11::writable classes.
Ensures backwards compatibility with code generation from cpp11 0.1.0 (#88)
push_back()
now works more consistently with named arguments (#86)
cpp11 is now able to compile on gcc 4.8.5 (#69, @bkietz)
cpp_source()
, cpp_function()
and cpp_eval()
now support [[cpp11::linking_to()]]
syntax to link to third party packages with C++ headers. (#48)
as_cpp<E>()
now works with enumeration types (#52, @bkietz)
as_cpp<int>()
and as_cpp<double>()
now implicitly coerce between all 3 types of single NA values (#53).
list::const_iterator::operator*()
added so iterators could be used on list objects (#60, @romainfrancois)
safe[]
can now work with functions that return any type (#70, @bkietz)
The END_CPP
macro now includes a catch(...)
block to catch all C++ exceptions that do not inherit from std::exception
(#47).
Improve consistency of inserting NA values in r_string objects (#45)
Added a NEWS.md
file to track changes to the package.