$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Eric Friedman (ebf_at_[hidden])
Date: 2002-07-02 22:46:27
Anyone have an idea as to how to make the following code work (or at
least exhibit similar behavior) under MSVC 7 or GCC 2.9.5?
Comeau compiles the code without error.
Under MSVC 7 I get:
"error C2372: 'test_using<base>::initialize' : redefinition; different
types of indirection."
Under GCC 2.9.5 I get:
"cannot adjust access to `int test_base::f(const float &)' in `struct
test_using<double,test_base>' because of local method `int
test_using<double,test_base>::f(const double &)' with same name
cannot adjust access to `int test_using<double,test_base>::f(const
double &)' in `struct test_using<int,test_using<double,test_base> >'
because of local method `int test_using<int,test_using<double,test_base>
>::f(const int &)' with same name"
Thanks,
Eric Friedman
---
struct test_base
{
static void f() { }
};
template <typename T, typename base>
struct test_using
: base
{
using base::f;
static int f(const T& t)
{
return t;
}
};
int main()
{
typedef test_using<
int
, test_using<
double
, test_base
>
> test;
test::f(3);
test::f(3.14);
test::f(float(3.14));
}