From: Bjarne Stroustrup (bs_at_[hidden])
Date: 2001-04-04 14:33:56
> On Wednesday 04 April 2001 19:36, you wrote:
> > I'm working on a set of classes for representing the type structure of a
> > C++ program currently called XTI (for eXtended Type Information) and a way
> > of generating it from a compiler. Using XTI, a C++ program can be written
> > to take actions depending on the types, e.g. inquire whether a function has
> > a member of a given name and if so what are its argument types.
> Will we be able to get at the name of the argument as well as its type?
Yes (but remember that two different declarations can have different argument
names and XTI can preferve at most one)
> Will we be able to get details about instanciated templates and template
XTI can represent instantiations. I hope to get compilers to produce sufficient
information to present that to users.
> > I plan to make it publically available, probably on boost (if the reviewers
> > like it). I'm not yet ready for others to use it, but I hope to be able to
> > put it up on my home pages for people to look at in another couple of
> > months.
> > My hope is to address many of the issues related to IDLs (by using C
> > Standard C++ as the IDL :-) and most likely other issues. My direct aim is
> > better support for distributed computing.
> I have an H1B visa if you need an assistant :-)
My development budget is nonexistent. That's one reason I like boost.
(AT&T Labs - Research is always looking for star researchers, though, so if you
are about to get a PhD or if you have a research publication record a mile long,
please think of us (Beeman: sorry for the plug, I couldn't resist)).
Sorry for posting a teaser only. I'll be giving a design class in San Jose next
week (at SD20001w) where I'll use XTI as an example. I'll post the slides to my
As soon as I can, I'll post the code also.
What would be a help at this stage would be ideas for how much information could
be reasonably be presented. "everything" is an unspecified amount.
Remember that I'm talking of optional stuff that a programmer can load into a
program that needs it. I do not want to burden, say embedded systems builders or
high-energy physicists. The design maintains the 0-overhead principle as far as
the language is concerned. This implies that there are things that cannot be
done and others that cannot be done trivially.
Currently, I represent everything you can find in a class declaration (minus
function bodies) after preprocessing. I allow every declaration to be
"annotated" by (name,value) pairs, so in principle a user can add arbitrary
> Hamish Mackenzie
Bjarne Stroustrup, http://www.research.att.com/~bs
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk