Need template work-around in VC6

Tech-Archive recommends: Fix windows errors by optimizing your registry



I am using VC++ 6 (sp6) and cannot change compilers. I have something
akin to this code:

#include <iostream>
using namespace std;

template<int i>
struct Int2Type
{
enum { value = i };
};

struct Foo
{
template<int i>
void Bar()
{
cout << i << endl;
}

// Ugly work-around
template<int i>
void Baz( const Int2Type<i>& )
{
cout << i << endl;
}
};

int main()
{
Foo f;
f.Bar<42>(); // Error here
f.Baz( Int2Type<42>() );
return 0;
}

The error message is: "error C2059: syntax error : ')'". I can use the
ugly work-around with Int2Type that is shown, but I would much prefer
something simpler and more aesthetically pleasing. Any ideas?

Cheers! --M

.



Relevant Pages

  • Re: Need template work-around in VC6
    ... struct Int2Type ... void Baz(const Int2Type&) ... ugly work-around with Int2Type that is shown, ...
    (microsoft.public.dotnet.languages.vc)
  • Re: Need template work-around in VC6
    ... struct Int2Type ... void Baz(const Int2Type&) ... doesn't understand explicit template arguments on a function invocation. ...
    (microsoft.public.dotnet.languages.vc)