c++ - Failure to access enum in bolt-in's parameterising type
- Matthew (30/30) May 22 2004 The following code gives
The following code gives
boltinenum.cpp(25) : Error: 'sequence_type' must be a public base class of
'?$sequence_wrapper V?$sequence D '
which is obviously a bit of a problem. ;)
template <typename C>
class sequence
{
public:
enum
{
files = 0x01
};
};
template <typename S>
class sequence_wrapper
{
public:
typedef S sequence_type;
};
int main()
{
typedef sequence<char> sequence_t;
typedef sequence_wrapper<sequence_t> wrapper_t;
int f = wrapper_t::sequence_type::files;
return f;
}
I know there's a simple workaround - by typedef'ing to an intermediate type from
wrapper_t::sequence_type, and then accessing the enum value from there - but
this
is in highly-ported code, and it already contains more #ifdefs than the XP
source. ;(
May 22 2004








"Matthew" <matthew.hat stlsoft.dot.org>