Boost logo

Boost :

From: Ed Brey (brey_at_[hidden])
Date: 1999-10-28 16:23:24


Nick Ambrose wrote:
>
> Yeouch. I guess this is (kinda) OK if it really means decoration
> (which is different than mangling here) and the decorated name
> is then mangled. I am not sure that is the case though. How
> many arguments are being passed to the function in question ?

What is the difference between mangling and decoration. I had thought
that there was just one concept, initially called mangling, and
renamed by some to decoration. Correct me if I'm wrong, but the
mangled/decorated name breaks everything down to its most primitive
type, e.g.

void fn(vector< shared_ptr<int> >&)

becomes (in pseudo-mangled-code)

fn_void_a1_ref_(vector_t2_(shared_ptr_t1_int)_allocator)

The above is just a made-up mangling scheme, with some parentheses
thrown in to make the prefix notation more readable, but (minus design
flaws) it uniquely identifies the function and its arguments (and
return code, which probably isn't necessary). So would this be
mangling or decorating or neither?

As I recall, then I got the warning, I may not have even been calling
a function. Rather, I think the cause stemmed from typedefs within
classes, like vector::iterator, defined within template classes with
long template argument names and/or long template instantiation names.


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