Boost logo

Boost :

Subject: Re: [boost] [type_traits] Variadic function pointer with __fastcall calling convention
From: Stephan T. Lavavej (stl_at_[hidden])
Date: 2013-10-05 16:02:34

[Edward Diener]
> The problem from clang's perspective is that they must emulate this
> "feature" <g> to compile Boost type_traits. Their developers feel that
> Boost type_traits should not depend on this feature, ie. should not
> specify any VC++ calling conventions for varargs function or function
> template declarations.

I agree with clang's devs (because that's what VC's <type_traits> does).

> What I mean is that in VC++ the declarations are redundant, being the
> same template redeclared.

Right. So if you want to absorb all old-style varargs, you need only one overload/specialization.

> In this case clang either has to change to be like VC++

Oh, I thought clang was attempting to be VC-compatible here (like our copy of EDG for Intellisense does).

If clang is supposed to be VC-compatible, then they should treat varargs with calling conventions like VC does, and Boost should do what VC <type_traits> does (i.e. one overload/specialization with no calling convention - or __cdecl would work, I think).

If clang wants to be different from VC, then Boost should do something different for clang and VC.


Boost list run by bdawes at, gregod at, cpdaniel at, john at