Steven Watanabe a écrit :
I would be helpful to see the definition of settings<>.
Are any of it's template parameters or base classes in namespace mpl?
Ok, yes. I suspect that the compiler is finding mpl::size by ADL. I
don't think
it ought to, but I'll look it up. I'd also like to know what happens
with another compiler.
You got it right. settings was defined as :
template< class S1 = bm::na,class S2 = bm::na,class S3 = bm::na,
class S4 = bm::na,class S5 = bm::na,class S6 = bm::na,
class S7 = bm::na,class S8 = bm::na,class S9 = bm::na
>
struct settings : bm::vector type;
{};
I changed it to :
template< class S1 = bm::na,class S2 = bm::na,class S3 = bm::na,
class S4 = bm::na,class S5 = bm::na,class S6 = bm::na,
class S7 = bm::na,class S8 = bm::na,class S9 = bm::na
>
struct settings
{
typedef bm::vector type;
};
and modified the appropriate typedef in process_settings. Another such
problems
was raised in another of my matrix related case. When both where fixed,
it worked flawlessy.
I also made the test on VC++ 2008 with same results.
The fact the compiler use ADL at this point is rather fishy as the whole
matrix type should be enough.
Thanks for the highlight, I was so deep in this matter for so long I
didn't tought of the obvious.
Joel FALCOU
Research Engineer @ Institu d'Electronique Fondamentale
Université PARIS SUD XI
France