Dear Experts,
I have code something like this:
struct S;
class iter:
public boost::iterator_facade
{ ... };
struct S {
...
};
This used to work, but stopped recently; I believe it may have been
after upgrading gcc, not after upgrading Boost itself, but I'm
uncertain about that. The problem is that something inside
iterator_facade calls boost::is_POD<S>, which (not unreasonably)
doesn't seem to work for the forward-declared S.
I've never been entirely sure what you're allowed to do with
forward-declared types like that. Was I just lucky that it worked
before, or is this a regression?
Re-ordering the code to remove the circular dependencies will be
painful, so if anyone has any other hints I would love to hear them.
Thanks, Phil.