Boost logo

Boost Users :

From: Joel FALCOU (joel.falcou_at_[hidden])
Date: 2008-02-27 11:00:24


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<S1,S2,S3,S4,S5,S6,S7,S8,S9> 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<S1,S2,S3,S4,S5,S6,S7,S8,S9> 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


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net