Package: cppally 1.0.0

Nick Christofides

cppally: A 'C++20' API for R

A header-only 'C++20' API for manipulating R data structures from 'C++'. Provides 'C++20' concepts specific to R, custom scalar and vector classes with built-in NA handling, automatic object protection, 'SIMD' (single-instruction-multiple-data), parallelisation, and a streamlined system for registering 'C++' functions, including templates, to R. Full API reference and documentation are available at <https://nicchr.github.io/cppally/>.

Authors:Nick Christofides [aut, cre, cph], Martin Leitner-Ankerl [cph], Malte Skarupke [cph], Posit Software, PBC [cph]

cppally_1.0.0.tar.gz
cppally_1.0.0.tar.gz(r-4.7-any)cppally_1.0.0.tar.gz(r-4.6-any)
cppally_1.0.0.tgz(r-4.6-emscripten)
manual.pdf |manual.html
DESCRIPTION |NEWS
card.svg |card.png
cppally/json (API)

# Install 'cppally' in R:
install.packages('cppally', repos = c('https://cran.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/nicchr/cppally/issues

Pkgdown/docs site:https://nicchr.github.io

On CRAN:

Conda:

3.60 score 6 scripts 307 downloads 10 exports 0 dependencies

Last updated from:a82b1cdad2. Checks:4 OK. Indexed: no.

TargetResultTimeFilesSyslog
linux-devel-x86_64OK146
source / vignettesOK324
linux-release-x86_64OK161
wasm-releaseOK165

Exports:cpp_evalcpp_registercpp_sourcedocumentload_alluse_check_data_framesuse_check_factorsuse_copy_on_modifyuse_cppallyuse_preserve_altrep_flag

Dependencies:

Automatic Protection
Motivation and design | Protection benchmark: cpp11 vs cppally | cppally views: A solution to the protection overhead problem | r_str_view | view() | Using views safely

Last update: 2026-07-02
Started: 2026-04-28

Functional Programming with cppally
reduce | pmap | Lagged operations | In-place functionals | Vectorised math

Last update: 2026-07-02
Started: 2026-07-02

Getting started with cppally
Setup | Registering C++ functions (to R) | Registering C++ functions outside of a package context | Registering C++ functions inside a cppally-linked package | General steps to using cppally in a package | C++ types | Scalars | logical scalar - r_lgl | NA values | C++ NA values and their R C API equivalents | Checking equality | Scalar operators | Scalar arithmetic operators | Scalar relational operators | Vectors | inline vectors | Scalar math | Coercion | Strings | Symbols | Cached strings & symbols | Lists | Factors | Value matching | Subsetting | Concepts and Templates | How it works | Templates without function arguments | Attributes | Regular sequences | Sugar functions | Annex | Symbols in R-registered templates | All core cppally concepts | Accessing the underlying types and values

Last update: 2026-07-02
Started: 2026-04-28

Vector Names Hashing
Performance of indexing by location versus name | Generated R code | Generated C++ code | The cost of first lookup | The cost of many lookups | Future development

Last update: 2026-07-02
Started: 2026-07-02