-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Steven Schveighoffer wrote: > On Fri, 21 Aug 2009 13:54:38 -0400, div0 <[email protected]> > wrote: > >> -----BEGIN PGP SIGNED MESSAGE----- >> Hash: SHA1 >> >> Jarrett Billingsley wrote: >>> On Fri, Aug 21, 2009 at 1:36 PM, div0<[email protected]> wrote: >>> >>> That's what he's suggesting, and it does make sense. When you write a >>> template, *either* it's meant to be used as a mixin, *or* it's meant >>> to be used some other way. Mixin in a template that wasn't meant to >>> be a mixin or vice versa usually makes no sense. >> >> Hmmm. >> >> Not convinced by that argument, I can think of good reasons to use a >> template as both. >> > > What you could have is similar to scope classes, that is, if you define > a template as a mixin template, it's always meant to be a mixin (which > is a common case). > > Now, scope classes must be declared as scope when used, so does it make > sense to require mixin templates to be called via mixin? I'm not sure, > it would be against what the O.P. desired, but seeing the mixin keyword > at the usage site is a huge documentation hint. > > I do see value in declaring a template as a mixin template, making it an > error to use it as a normal template. > > -Steve
That would be nice. You can sort of bodge that at the mo. Just stick a const method in the template, then if you try and use it outside a class/struct the compiler barfs. Though really that needs to change; it's inconsistent. - -- My enormous talent is exceeded only by my outrageous laziness. http://www.ssTk.co.uk -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iD8DBQFKj72nT9LetA9XoXwRAiBsAJ4/N0S1gzR+LaVnINd9eVHei5lHYgCfVmQi c5FDCV9/TvqFHyY6FMhRvzg= =R2Bs -----END PGP SIGNATURE-----
