|
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