Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c++ > #70304
| From | Paavo Helde <myfirstname@osa.pri.ee> |
|---|---|
| Newsgroups | comp.lang.c++ |
| Subject | Re: enum type in template declaration |
| Date | 2019-12-06 14:42 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <qsdib1$2j6$1@dont-email.me> (permalink) |
| References | <qsbvs3$81l$1@dont-email.me> <qscii5$5an$1@dont-email.me> <qsdgou$paa$1@dont-email.me> |
On 6.12.2019 14:15, Soviet_Mario wrote:
> Il 06/12/19 04:39, James Kuyper ha scritto:
>> On 12/5/19 5:20 PM, Soviet_Mario wrote:
>>> since what version of standard, if any, an ENUM type can be
>>> an argument of a template ?
>>
>> It has always been possible to use an enumerated type as a template
>> parameter.
>
> sorry I'm not sure I have understood
A template parameter can be a type, an int, etc. An enum type is also a
type:
enum RestrictedValues { A = 1, B = 2, C = 4, D = 8 };
template<typename T>
class A {
T member;
};
A<RestrictedValues> x; // OK
Here, an enum type is used as an argument of a template, as you requested.
However, I suspect that you actually want to use an enum value (not enum
type) as the template parameter - see below.
>
> Mmmm, exactly the point I am misunderstanding. I believed to have been
> able to establish a proper type-checking in that declaration.
> How instead it should have been written ?
> can you correct my example in order to non accept non specific-enum
> integral instancing ?
You have not said what your problem is. If you got a compiler error,
then what was the code and what was the error?
What you wrote was basically correct syntax (after commenting out "etc
etc"). This compiles fine:
enum RestrictedValues { A = 1, B = 2, C = 4, D = 8 };
template <RestrictedValues ttVal> class SizedField
{
private:
unsigned char zzArray[ttVal];
public:
//etc etc
};
int main() {
SizedField<B> foo;
}
Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
enum type in template declaration Soviet_Mario <SovietMario@CCCP.MIR> - 2019-12-05 23:20 +0100
Re: enum type in template declaration James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-12-05 22:39 -0500
Re: enum type in template declaration Soviet_Mario <SovietMario@CCCP.MIR> - 2019-12-06 13:15 +0100
Re: enum type in template declaration Paavo Helde <myfirstname@osa.pri.ee> - 2019-12-06 14:42 +0200
Re: enum type in template declaration Soviet_Mario <SovietMario@CCCP.MIR> - 2019-12-06 17:20 +0100
Re: enum type in template declaration Paavo Helde <myfirstname@osa.pri.ee> - 2019-12-06 20:29 +0200
Re: enum type in template declaration Soviet_Mario <SovietMario@CCCP.MIR> - 2019-12-06 22:42 +0100
Re: enum type in template declaration Paavo Helde <myfirstname@osa.pri.ee> - 2019-12-07 00:51 +0200
Re: enum type in template declaration Soviet_Mario <SovietMario@CCCP.MIR> - 2019-12-07 18:54 +0100
Re: enum type in template declaration Öö Tiib <ootiib@hot.ee> - 2019-12-06 06:00 -0800
Re: enum type in template declaration James Kuyper <jameskuyper@alumni.caltech.edu> - 2019-12-06 09:56 -0500
Re: enum type in template declaration Manfred <noname@add.invalid> - 2019-12-06 15:56 +0100
Re: enum type in template declaration Soviet_Mario <SovietMario@CCCP.MIR> - 2019-12-06 18:43 +0100
Re: enum type in template declaration saturnman2008@gmail.com - 2019-12-07 01:53 -0800
Re: enum type in template declaration Soviet_Mario <SovietMario@CCCP.MIR> - 2019-12-07 18:57 +0100
csiph-web