Please don't top post ... reordered.
VC6 is pretty strange, I agree. In particular, it doesn't handle functions with non-type template parameters well. The following code should demonstrate the problem. (Hopefully I'm remembering the problem correctly -- I don't have VC6 installed on this machine.)
template<int I> void foo() { std::cout << I << '\n'; }
int main() { foo<1>(); foo<2>(); return 0; }
If you must use VC6, avoid non-type template parameters for function templates.
Sliwa, Przemyslaw (London) wrote:
This returns in both cases the same value. Is there a way around this problem at all?
Thanks
Pshemek
Try using integer wrappers. The MPL ones should do the trick:
template<typename Int> void foo()
{ std::cout << Int::value << '\n'; }
int main() {
foo