Actually,
It is complaining because the function is defined as retruning a reference to a variable, and it is returning a local variable. The local variable technically does not exist once the function returns, because it is out of scope. So you are returning a reference to a variable which does not exist from the perspective of the caller.
inline const bool& IsRooted() { return rooted || permarooted; }
there is no reason this function should return a reference, as doing an assignment on the returned value dosent make any sense (besides the fact that it is const), and that is the reason to return a reference.
simple fix is:
inline const bool IsRooted() { return rooted || permarooted; }
|