Tcl++ , by Matt Newman, is a pure Tcl implementation of incr Tcl.


first published
website (down) or



Useful when you want to distribute an application that requires incr Tcl, and you don't know if it is available on the target system. (Or when you don't want to bother users with requiring them to install any add-on packages beyond Tcl/Tk itself.) Since the "real" incr Tcl is part of all known "Batteries Included" distributions of Tcl/Tk, and is also part of Tclkit, there are few remaining use cases for Tcl++.

There are some subtle discrepancies in functionality that are easily avoided.

FPX likes to use the following code, which

  • attempts to load incr Tcl, or if that fails,
  • loads tcl++, and fakes the presence of incr Tcl.

For that purpose, applications that require it include a copy of tcl++.

if {[catch {
   package require Itcl
}]} {
   # If we can't have Itcl, load tcl++

   lappend auto_path [file join [file dirname [info script]] tcl++]
   package require tcl++

   # Fake presence of Itcl

   namespace eval ::itcl {
     namespace import -force ::tcl++::class
     namespace import -force ::tcl++::delete

   package provide Itcl 3.0

Another Tcl++

What: Tcl++/Tk++
Updated: 07/1998
Contact: mailto:[email protected] (E. Gkioulekas)

A package that makes development of extended Tcl/Tk interpreters easier and more pleasant for C++ programmers. It does not patch the core, nor need the Tcl internals. This also includes a small object oriented extension as well as some widgets for Tk. Further development of Tcl++ is on hold right now. According to Matt Newman in PROPOSAL: Include SOAP and XML-RPC in tcllib , comp.lang.tcl, 2001-08-12, E. Gkioulekas renamed his Tcl++ to "tclpp" to avoid the name conflict. This raises a question about any relation to Stefan Sinnige's tclpp.

Yet Another Tcl++

Another package that used the tcl++ name in the past:

What: tcl++
Where: From the contact
Description: Tcl based code providing SELF-like prototype-based tcl objects.
Contact: mailto:[email protected] (Hansel Wan)

See Also

Matt Newman's object system
PYK 2016-02-03: Contents of that page were incorporated into this page before it was cleared. See its history for what was there.