Build failes with g++ (SUSE Linux) 4.8.1 20130909 [gcc-4_8-branch revision 202388]
Created by: subhacom
With new g++, build process fails in folder basecode.
In file included from header.h:104:0,
from Cinfo.cpp:10:
Conv.h: In instantiation of ‘class Conv<Finfo>’:
FieldElementFinfo.h:146:29: required from ‘std::string FieldElementFinfo<T, F>::rttiType() const [with T = Cinfo; F = Finfo; std::string = std::basic_string<char>]’
Cinfo.cpp:588:1: required from here
Conv.h:72:11: error: cannot allocate an object of abstract type ‘Finfo’
const T operator*() const {
^
In file included from header.h:83:0,
from Cinfo.cpp:10:
Finfo.h:14:7: note: because the following virtual functions are pure within ‘Finfo’:
class Finfo
^
Finfo.h:34:16: note: virtual void Finfo::registerFinfo(Cinfo*)
virtual void registerFinfo( Cinfo* c ) = 0;
^
Finfo.h:41:16: note: virtual bool Finfo::strSet(const Eref&, const string&, const string&) const
virtual bool strSet( const Eref& tgt, const string& field,
^
Finfo.h:49:16: note: virtual bool Finfo::strGet(const Eref&, const string&, std::string&) const
virtual bool strGet( const Eref& tgt, const string& field,
``````~
Class Finfo contains virtual functions therefore is being treated as an abstract class. gcc 4.8 complains that it can not be instantiated. It may be a bug with gcc4.8.
This version of gcc is default compiler on opensuse and centos.
Reported by: *anonymous