途中で送っちゃった

template <class X> void forward_test(X && x)
{
func(forward<X>(x));
}

これをC++03でやろうとしたら
template <class X> void forward_test(X & x)
{
func(x);
}

template <class X> void forward_test(X const & x)
{
func(x);
}

template <class X> void forward_test(X volatile & x)
{
func(x);
}

template <class X> void forward_test(X const volatile & x)
{
func(x);
}

見たいな感じで列挙するしかないの?