Re: Template question...



Ben Voigt wrote:
"Victor Bazarov" <v.Abazarov@xxxxxxxxxxxx> wrote in message
news:epnobc$q41$1@xxxxxxxxxxxxxxxxxx
Andy wrote:
[..]
How would I go about making this happen?

template<int Count> struct ACollectionOfThings {
typedef char not_allowed[Count > 16];
not_allowed& foo(); // dummy member
};

template<int Count> struct ASmallCollectionOfThings {
typedef char not_allowed[Count <= 16];
not_allowed& foo(); // dummy member
};

This assumes that your compiler forbids arrays of size zero, which
isn't true of all compilers.

Why should anybody concern themselves with non-compliant compilers?

Better would be:

template<int Count> struct ACollectionOfThings {
~ACollectionOfThings() { // or any other member function that gets
used const bool toosmall = Count < 16;
switch { case toosmall: case true: break; }

How does that work? Shouldn't there be a parenthesised expression
after the 'switch'? What compiler compiles the code you posted?

}
};




int main()
{
ACollectionOfThings<123> c123; // OK
ACollectionOfThings<10> c10; // causes an error
ASmallCollectionOfThings<10> sc10; // OK
ASmallCollectionOfThings<123> sc123; // causes an error
return 0;
}



V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask


.



Relevant Pages

  • Re: Template question...
    ... I don't know of any other compiler that even ... templatestruct ACollectionOfThings { ... used const bool toosmall = Count < 16; ... switch ...
    (microsoft.public.vc.language)
  • Re: DPROD issues
    ... a switch like that typically ... makes a compiler nonstandard in that mode. ... treatment of specific intrinsics is one ... subroutine sub1a ...
    (comp.lang.fortran)
  • Re: [OT] Funny
    ... >> the NAG compiler does have a switch to allow you to tell it ... or the compiler simply isn't conforming. ... more arithmetic in computing addresses of array elements -- dis- ...
    (comp.lang.fortran)
  • Re: "static" explanation. What exactly does it mean?
    ... compiler you set the exception handler to use Underflow gives 0.0; ... determine if there is a switch to generate signaling NaN's so the program stops ... find unequivocal explanations of what the use of static variables in Fortran code actually ...
    (comp.lang.fortran)
  • Re: Retroforth compiler
    ... einen replicated switch dispatcher zur ckzuf hren ist. ... C compiler: ... Source code: ... Instruktionssatz des Interpreters um neue Opcodes erweitern zu können. ...
    (de.comp.lang.forth)