[ ... ][QUOTE]\nBy Comeau you mean latest EDG frontend based? Or is Comeau some way\ndifferent from the others?[/QUOTE]\n\nComeau implements 'export' for templates. From the viewpoint of the\nfront-end, 'export', by itself, consists primarily of putting the\nkeyword into the right place in the scanner. To use the keyword\nproperly, the front-end also needs to implement two-phase lookup, which\nquite a few (most?) others don't.\n\nThat's a pretty serious amount of hard work, but it's more or less the\neasy part as far as supporting export goes -\- once you have a front-end\nthat recognizes it correctly, you have to figure out some way to make it\nwork. In Comeau's case, a pre-linker is used -\- Greg may jump in to\ncorrect me on this, but I believe this is part of the mechanism used to\nget exported templates to work.\n\nThe basic problem is more or less one of circularity: when you write an\nexported template, the compiler doesn't have _nearly_ all the\ninformation necessary to generate code for the template. That only\nbecomes available when the template is instantiated over some particular\ntype. There are a number of problems, but one of the primary ones is\nbasically one of circularity: you have to be ready to re-do most of the\ncode-generation parts of compiling the template every time it's\ninstantiated over a new type.\n\nFollowing the typical flow of starting with source files, compiling to\nobject files, then linking them together (adding code from libraries as\nneeded) simply doesn't fit well with this. You can't compile a template\nto normal object code that's ready for linking until you know the type\nover which its being instantiated.\n\nIn Comeau's case, he does part of the job with a pre-linker that runs\nafter the compiler back-end, but before the linker. The details are\nprobably proprietary, but I suspect this is used (among other things) to\ntake a "compiled" template and generate code for it instantiated over a\nparticular type.\n\nThe bottom line is that although there are other compilers that use the\nEDG front-end, TTBOMK, none of them implements export.