overloaded-virtual warning in visitors
I'm getting some warnings that I didn't used to have when building with GCC 6.2.1
In file included from ../../vcsn/core/rat/visitor.hh:81:0,
from ../../vcsn/core/rat/copy.hh:3,``
from ../../vcsn/algos/copy.hh:10,
from ../../vcsn/algos/filter.hh:8,
from ../../vcsn/algos/accessible.hh:5,
from ../../vcsn/algos/are-equivalent.hh:3,
from ../../vcsn/ctx/lal_char_b.hh:15,
from ../../lib/ctx/libctx.cc:5:
../../vcsn/core/rat/copy.hh: In instantiation of ‘class vcsn::rat::copy_impl<vcsn::weightset_mixin<vcsn::rat::expressionset_impl<vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> > > >, vcsn::weightset_mixin<vcsn::rat::expressionset_impl<vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> > > > >’:
../../vcsn/core/rat/copy.hh:177:63: required from ‘typename OutExpSet::value_t vcsn::rat::copy(const InExpSet&, const OutExpSet&, const typename InExpSet::value_t&) [with InExpSet = vcsn::weightset_mixin<vcsn::rat::expressionset_impl<vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> > > >; OutExpSet = vcsn::weightset_mixin<vcsn::rat::expressionset_impl<vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> > > >; typename OutExpSet::value_t = std::shared_ptr<const vcsn::rat::node<vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> > > >; typename InExpSet::value_t = std::shared_ptr<const vcsn::rat::node<vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> > > >]’
../../vcsn/core/rat/expressionset.hxx:995:29: required from ‘vcsn::rat::expressionset_impl<Context>::value_t vcsn::rat::expressionset_impl<Context>::conv(const self_t&, const value_t&) const [with Context = vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> >; vcsn::rat::expressionset_impl<Context>::value_t = std::shared_ptr<const vcsn::rat::node<vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> > > >; vcsn::rat::expressionset_impl<Context>::self_t = vcsn::weightset_mixin<vcsn::rat::expressionset_impl<vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> > > >]’
../../vcsn/dyn/value.hh:146:48: required from ‘auto vcsn::dyn::join(const vcsn::dyn::value_impl<Tag>&, const vcsn::dyn::value_impl<Tag>&) [with ValueSetLhs = vcsn::weightset_mixin<vcsn::rat::expressionset_impl<vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> > > >; ValueSetRhs = vcsn::weightset_mixin<vcsn::rat::expressionset_impl<vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> > > >; Tag = vcsn::dyn::detail::expression_tag]’
../../vcsn/algos/add.hh:188:52: required from ‘vcsn::dyn::expression vcsn::dyn::detail::add_expression(const expression&, const expression&) [with ExpSetLhs = vcsn::weightset_mixin<vcsn::rat::expressionset_impl<vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> > > >; ExpSetRhs = vcsn::weightset_mixin<vcsn::rat::expressionset_impl<vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> > > >; vcsn::dyn::expression = vcsn::dyn::value_impl<vcsn::dyn::detail::expression_tag>]’
../../vcsn/ctx/instantiate.hh:165:9: required from ‘bool vcsn::ctx::detail::register_expression_functions() [with ExpressionSet = vcsn::weightset_mixin<vcsn::rat::expressionset_impl<vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> > > >]’
../../vcsn/ctx/instantiate.hh:330:44: required from ‘bool vcsn::ctx::detail::register_functions() [with Ctx = vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> >]’
../../vcsn/ctx/lal_char_b.hh:24:3: required from here
../../vcsn/core/rat/visitor.hxx:12:5: warning: ‘void vcsn::rat::const_visitor<Context>::visit(const compose_t&) [with Context = vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> >; vcsn::rat::const_visitor<Context>::compose_t = vcsn::rat::variadic<(vcsn::rat::type_t)15, vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> > >]’ was hidden [-Woverloaded-virtual]
const_visitor<Context>::visit(const Type ## _t& Name)
^~~~~~~~~~~~~~~~~~~~~~
../../vcsn/core/rat/visitor.hxx:12:5: note: in definition of macro ‘VISIT’
const_visitor<Context>::visit(const Type ## _t& Name)
^~~~~~~~~~~~~
In file included from ../../vcsn/algos/copy.hh:10:0,
from ../../vcsn/algos/filter.hh:8,
from ../../vcsn/algos/accessible.hh:5,
from ../../vcsn/algos/are-equivalent.hh:3,
from ../../vcsn/ctx/lal_char_b.hh:15,
from ../../lib/ctx/libctx.cc:5:
../../vcsn/core/rat/copy.hh:157:12: warning: by ‘vcsn::rat::copy_impl<vcsn::weightset_mixin<vcsn::rat::expressionset_impl<vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> > > >, vcsn::weightset_mixin<vcsn::rat::expressionset_impl<vcsn::context<vcsn::letterset<vcsn::set_alphabet<vcsn::char_letters> >, vcsn::weightset_mixin<vcsn::detail::b_impl> > > > >::visit’ [-Woverloaded-virtual]
void visit(const tuple_t& v, std::true_type) override
^~~~~
[More of the same...]
I'm not sure if this is an error or if we should just silence those.