Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: CPP related question on double code (B/W)

Author: Daniel Clausen

Date: 06:42:08 11/24/03

Go up one level in this thread


On November 24, 2003 at 09:31:34, Steffen Jakob wrote:

>On November 24, 2003 at 08:52:13, Daniel Clausen wrote:
>
>>On November 24, 2003 at 08:39:31, Reinhard Scharnagl wrote:
>>
>>[snip]
>>
>>>I thought on using templates, but they (as far as I know) are fine to
>>>implement same algorithms to different types. But what I want to have
>>>is to implement (nearly equal) algorithms for the same type using two
>>>different names.
>>
>>The formal parameter of a template can either be a type parameter (like int,
>>float, class XY, etc) or a constant expression. The example below illustrates
>>the 2nd case:
>>
>>
>>#include <iostream>
>>
>>template <int colour> void print(void)
>>{
>>   std::cout << colour << std::endl;
>>}
>>
>>int main(void)
>>{
>>   print<0>();
>>   print<1>();
>>
>>   return 0;
>>}
>
>I use this approach to write color independent code in Hossa which works fine.
>You have to be careful though because Visual C++ 6 generates wrong code for
>integer template parameters. If I remember write (I cannot try it out now
>because I am sitting in Graz waiting for the start of the 4th round) it would
>create the output
>
>0
>0
>
>in your example.

I just tried it with VC++6 and its output is
1
1

So it's wrong, as you predicted.

The code seems to be correct (and produces the expected result with gcc), so is
there a way that VC++ handles that correctly too?

Sargon



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.