# Install doublecpp with Homebrew

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

## Install

```sh
sudo av install brew:doublecpp
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install doublecpp
```

  Evidence: local Homebrew formula metadata

## Package facts

- **Package key:** brew:doublecpp
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/doublecpp>
- **Version:** 0.6.3
- **Source summary:** Double dispatch in C++
- **Homepage:** <https://doublecpp.sourceforge.net/>
- **Upstream docs:** <https://doublecpp.sourceforge.net/>
- **License:** GPL-2.0-or-later
- **Source archive:** <https://downloads.sourceforge.net/project/doublecpp/doublecpp/0.6.3/doublecpp-0.6.3.tar.gz>
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- doublecpp (cli)
- doublecpp (alias)

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_big_sur, arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, big_sur, catalina, monterey, sonoma, ventura

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.6.3
- Local data: ok
- Upstream repository: https://doublecpp.sourceforge.net/
- info: No package-manager update timestamp was available.
- info: Release/tag comparison is only available for GitHub repositories.
## 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.

### Sources

- <https://doublecpp.sourceforge.net/>
- <https://sourceforge.net/projects/doublecpp/rss?path=/>
- <https://sourceforge.net/projects/doublecpp/>
- <https://prdownloads.sourceforge.net/doublecpp/doublecpp.pdf>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** doublecpp
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [metashell](https://www.automicvault.com/pkg/brew/metashell/) - Shares av.db curated category or tags: cli, cpp, developer-tools, programming-languages.
- [ratfor](https://www.automicvault.com/pkg/brew/ratfor/) - Shares av.db curated category or tags: cli, developer-tools, preprocessor, programming-languages.
- [cdecl](https://www.automicvault.com/pkg/brew/cdecl/) - Shares av.db curated category or tags: cli, developer-tools, programming-languages.
- [cryptol](https://www.automicvault.com/pkg/brew/cryptol/) - Shares av.db curated category or tags: cli, developer-tools, programming-languages.
- [gawk](https://www.automicvault.com/pkg/brew/gawk/) - Shares av.db curated category or tags: cli, developer-tools, programming-languages.
- [mcpp](https://www.automicvault.com/pkg/brew/mcpp/) - Shares av.db curated category or tags: cli, cpp, developer-tools, preprocessor.
- [abi-dumper](https://www.automicvault.com/pkg/brew/abi-dumper/) - Shares av.db curated category or tags: cli, cpp, developer-tools.
- [activemq-cpp](https://www.automicvault.com/pkg/brew/activemq-cpp/) - Shares av.db curated category or tags: cli, cpp, developer-tools.

## Combined YAML source

View the package source record on GitHub. [combined/doublecpp.yml](https://github.com/automic-vault/db/blob/main/combined/doublecpp.yml)


## Sources

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