Вот минимальный код, который демонстрирует проблему:
void func1(long&) {}
void func2(const long&) {}
int main()
{
int i = 1;
func1(i); // error C2664
func2(i); // ok
}
В C++ запрещено привязывать временный объект к ссылке на неконстанту. Хотя сообщение об ошибке в вашем случае какое-то странное. Куда-то делся указатель у Base
*&. Возможно, баг MS VC++.