Automic VaultAutomic Vault

brew

Install doublecpp with Homebrew

Double dispatch in C++. Version 0.6.3 via Homebrew; verified from local package data.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install doublecpp

local Homebrew formula metadata

overview

Package summary

Double dispatch in C++

Commands and aliases

  • doublecpp

history

Project history and usage

Doublecpp is a small SourceForge-era C++ preprocessor by Lorenzo Bettini for experimenting with double dispatch and multimethod-style branching in C++. It adds a linguistic construct that is translated into ordinary single-dispatch C++ code.

Project history

The project homepage connects Doublecpp to academic work by Lorenzo Bettini, Sara Capecchi, and Betti Venneri on translating double dispatch into single dispatch. The homepage cites a 2004 workshop paper, a 2005 ENTCS publication, and a 2006 Software: Practice and Experience article, placing the tool in the early-2000s C++ language-extension and generative-programming scene.

Doublecpp was distributed as GPL free software with classic autotools build steps: `./configure`, `make`, and `make install`. Its official page also documented anonymous CVS access on SourceForge, which is a strong historical marker of its era.

Adoption history

SourceForge's file feed shows releases from 2006 through 2009, ending with doublecpp 0.6.3. Homebrew keeps it installable as a formula, but there is little evidence of broad modern adoption beyond package preservation and occasional C++ multimethod interest.

The project is best understood as a niche research-to-tooling artifact rather than a mainstream C++ development dependency.

How it is used

Doublecpp preprocesses C++ sources that use its double-dispatch construct, then emits C++ code where the correct branch is selected dynamically according to the runtime type of the receiver and first argument.

The homepage warned users to build generated code with GCC 3.x because earlier GCC versions had problems with Doublecpp output. That note is now mostly historical, but it shows how closely the tool was tied to compiler behavior of its time.

Why package nerds care

Doublecpp is interesting to package historians because it preserves a small language-extension experiment from the SourceForge/CVS/autotools period. It is the kind of package that survives in Homebrew not because everyone needs it, but because long-tail developer tools matter to reproducibility and software archaeology.

It also illustrates a recurring package-manager role: keeping academic or experimental compilers and preprocessors reachable long after their primary research moment has passed.

Timeline

  • 2004: Double-dispatch translation work is presented at WOOD 2004.
  • 2006: Doublecpp 0.6.1 source and PDF documentation are published on SourceForge.
  • 2007: Doublecpp 0.6.2 source and documentation are published.
  • 2009: Doublecpp 0.6.3 tarball is published on SourceForge.

Related projects

  • CLOS-style multimethods and multiple dispatch are the language-design ideas Doublecpp brings into C++ by preprocessing.
  • Autotools, flex, bison, GCC, Cygwin, and SourceForge CVS are the surrounding toolchain named by the official page.
  • Modern C++ alternatives are usually implemented with templates, visitors, variants, or runtime type dispatch rather than a standalone preprocessor.

security posture

Risk level: green

narrow executable package without higher-risk signals.

Risk classifier

green risk · low confidence · appliance

Why

  • narrow executable package without higher-risk signals

Signals

  • metadata:no-higher-risk-signals

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 13 platform targets.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
doublecppcliglobal executable

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-07-08
manager version0.6.3
manager updated
local dataok
upstreamnot checked
latest detectednot detected

https://doublecpp.sourceforge.net/

  • infoNo package-manager update timestamp was available.low confidence
  • infoRelease/tag comparison is only available for GitHub repositories.https://doublecpp.sourceforge.net/none confidence

install metadata

Package metadata

Package keybrew:doublecpp
Version0.6.3
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/doublecpp
Homepagehttps://doublecpp.sourceforge.net/
Upstream docshttps://doublecpp.sourceforge.net/
LicenseGPL-2.0-or-later
Source archivehttps://downloads.sourceforge.net/project/doublecpp/doublecpp/0.6.3/doublecpp-0.6.3.tar.gz
Bottleavailable (on arm64_big_sur, arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, big_sur, catalina, monterey, sonoma, ventura, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Namedoublecpp
Version Scheme0
Revision0
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • stable

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • av.db category and tag curation
  • cross-ecosystem install command graph
  • curated package history
  • package relationship graph
  • package version freshness
  • package-page enrichment