$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Alexey Nikitin (reductor_at_[hidden])
Date: 2004-01-12 04:49:53
I have investigated problem with compilation with VC7.1 and have found the
next code is not compiled
--------------- test.cpp ------------------------
template< int N >
struct int_
{
static const int value = N;
};
enum C { V }; // analogue level_type
struct A // analogue implementation_level
{
typedef int_<V> type;
static const C value = static_cast<C>(type::value); // problem line
};
int_<A::value> tmp;
-----------------------------------------------------
with error
test.cpp(15) : error C2975: 'N' : invalid template argument for 'int_',
compile-time evaluatable constant expression expected
test.cpp(1) : see declaration of 'N'
If problem line (analogue line 81 in level.hpp in which defined
implemetation_level struct) replace by
static const int value = type::value;
example is compiled ok.
Is it possible apply any workaround for this issue?
Regards,
Alexey.