pkg.soopen package index

brew / rank 15957

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 bottle metadata was recorded.

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
doublecppexecutableindexed executableDiscovered from the local executable index.

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-08-03
manager version0.6.3
manager updated
local dataunknown
upstreamnot available
latest detectednot detected
  • okNo freshness warnings were generated.

install metadata

Package metadata

Package keybrew:doublecpp
Version0.6.3
Package managerHomebrew
Homepagehttps://doublecpp.sourceforge.net/
Bottlenot recorded
Servicenone declared

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
  • cross-ecosystem install command graph
  • curated package history
  • pkg.so package database
  • pkgdb category and tag curation