Boost logo

Boost :

From: Markus Schöpflin (markus.schoepflin_at_[hidden])
Date: 2004-08-25 10:05:28


Hello!

Currently, the name mangling scheme used on this platform is the default
one selected by the compiler. It turns out that this is a bad choice when
compiling boost. The problem is illustrated by the following example:

---%<---
#include <iostream>
using namespace std;

template <typename T> void foo(T const &x)
{
   cout << "1" << endl;
}

template <typename T> void foo(T * const &x)
{
   cout << "2" << endl;
}

int main()
{
   foo("abc");
   return 0;
}
--->%---

This prints out "2" with the default name mangling scheme. When manually
selecting "ansi" as the name mangling scheme, the correct result "1" is
printed.

Therefore I propose to explicitely set the name mangling to ansi in the
tools file for this compiler. Does anyone have any strong feelings or
arguments against such a change?

Markus


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk