You can make your code compile and work OK. Try reorganizing the constructor as follows:
// constructor for A
template < ..typename list >
A ( ... input iterators list... )
: G() //calls constructor for G
, EPred(...) //some constructor for predicate
, FG( boost::make_filtered_graph(G, EPred) ) //creates your filtered graph
{
// fill the graph G with some values passed in constructor argument list.
}
The rest of code can remain unchanged.