Package: cppally 1.1.0.9000

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], Ryo Suzuki [cph], Posit Software, PBC [cph]

cppally_1.1.0.9000.tar.gz
cppally_1.1.0.9000.zip(r-4.7-any)cppally_1.1.0.9000.zip(r-4.6-any)cppally_1.1.0.9000.zip(r-4.5-any)
cppally_1.1.0.9000.tgz(r-4.6-any)cppally_1.1.0.9000.tgz(r-4.5-any)
cppally_1.1.0.9000.tar.gz(r-4.7-any)cppally_1.1.0.9000.tar.gz(r-4.6-any)
cppally_1.1.0.9000.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://nicchr.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:

7.05 score 2 stars 2 packages 7 scripts 183 downloads 12 exports 0 dependencies

Last updated from:2dd55465f2. Checks:9 OK. Indexed: yes.

TargetResultTimeFilesSyslog
linux-develOK121
source / vignettesOK383
linux-releaseOK151
macos-releaseOK111
macos-oldrelOK84
windows-develOK87
windows-releaseOK96
windows-oldrelOK68
wasm-releaseOK101

Exports:cpp_evalcpp_registercpp_sourcedocumentload_alluse_check_data_framesuse_check_factorsuse_copy_on_modifyuse_cppallyuse_openmpuse_preserve_altrep_flaguse_template_dispatch_candidates

Dependencies:

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 | Dates and date-times | Adding days, months, and years | Accessing date components | Date rounding | Difference between two dates | Fractional months | Symbols | Cached strings & symbols | Lists | Factors | Calling R functions | Value matching | Subsetting | Concepts and Templates | How it works | Templates without function arguments | Attributes | Regular sequences | Using multiple OpenMP threads | Stats functions | A note on cppally::sum | Unique values | Sorting | Grouping | Annex | Unsupported classes in R-registered templates | All core cppally concepts | Accessing the underlying types and values

Last update: 2026-10-14
Started: 2026-04-23

Vector Names
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-10-14
Started: 2026-10-14

Functional Programming with cppally
A note on writing code in C++ versus R | pmap | reduce | Returning early | Other pmap helpers | Multi-threading safety | Lagged operations | In-place functionals | Vectorised math | Grouped operations | Applying a C++ function by group

Last update: 2026-10-06
Started: 2026-06-28

Random number generation
Creating a stream | Reusing one stream | Explicit seeds | index() | Example: efficient sample with replacement | Using distributions | Calling R C API RNG functions | Bootstrapping | Comparison to R - benchmark | A flexible and fast bootstrapper | Engine

Last update: 2026-09-28
Started: 2026-08-04

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-09-12
Started: 2026-04-11