Win32 has an API ::EnumChildWindows. It is a model of "Iterable".
::EnumChildWindows should have been defined as "Single Pass Range", but Win32 didn't know the concept and cannot even stop the iteration. So we cannot write a wrapper Range for ::EnumChildWindows without additional resources like std::set<HWND>.
I always defined "for_each_toplevel_window" or something using ::EnumChildWindows. If using "Iterable", it could be