Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.sys.raspberry-pi > #11022
| From | Tauno Voipio <tauno.voipio@notused.fi.invalid> |
|---|---|
| Newsgroups | comp.sys.raspberry-pi, comp.os.linux.misc |
| Subject | Re: Translate C++: 5-lines |
| Date | 2016-03-07 20:04 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <nbkfle$2p1$1@dont-email.me> (permalink) |
| References | <nbkdb0$oav$1@dont-email.me> |
Cross-posted to 2 groups.
On 7.3.16 19:21, noSpam@gmail.com wrote:
> I don't want to learn C++, but this writer has some interesting ideas
> which I want to be able to understand:
> http://matt.might.net/articles/c++-template-meta-programming-with-l
> ambda-calculus/
>
> He writes:-- start extract --------------
> The canonical example of compile-time computation is factorial in
> templates:
> template <int N> <-following code is called a template. Where's the endToken?
> struct Factorial <-following code in "{}" is a structure/RECORD
> {
> enum { value = N * Factorial<N-1>::value };
> };
>
> template <>
> struct Factorial<0> <- yes we know: fact(0) == 1
> {
> enum { value = 1 } ; <- but explain the syntax!
> };
>
> Without the template specialization, a reference to
> Factorial<4>::value would re-write itself forever, eventually
> causing the template equivalent of a stack overflow.
>
> Note the use of enumerations to force compile-time evaluation of the
> member constant value.
>
> With this template in place, code could refer to Factorial<4>::value
> and get 24 computed at compile-time.
> ------------------------------ end of extract --------
> I 'come from' PASCAL..Oberon, rather than from C.
> The "<- arrows" are my guess at the C++ meanings.
> What means: enum -- in detail?
> Why use "< >" ?
> Does: "::" <token> mean token is the functions return value?
>
> == TIA
Chris,
This has nothing to do with Raspberry Pi, and you're pretty
lazy so search the Web for answers yourself.
--
-TV
Back to comp.sys.raspberry-pi | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Translate C++: 5-lines noSpam@gmail.com - 2016-03-07 17:21 +0000
Re: Translate C++: 5-lines Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2016-03-07 20:04 +0200
Re: Translate C++: 5-lines mm0fmf <none@invalid.com> - 2016-03-07 18:10 +0000
Re: Translate C++: 5-lines noSpam@gmail.com - 2016-03-08 19:48 +0000
Re: Translate C++: 5-lines Chick Tower <c.tower@deadspam.com> - 2016-03-09 18:11 +0000
csiph-web