#include <vector>
#include <algorithm>

class A {
public:
  bool hasGrandChild() const {
    return std::any_of(childs_.begin(), childs_.end(), [](A const &a) {
        return a.hasChild();
      });
  }
private:
  bool hasChild() const { return true; }
  std::vector<A> childs_;
};

int main()
{
  A a;
  a.hasGrandChild();
  return 0;
}
