Open danakj opened 1 year ago
I don't think this is solvable without collapsing everything into one header. We should solve this problem with modules instead,
Going modules is probably going to be a big pain cuz the unit tests will import sus; and something is going to break in clang https://clang.llvm.org/cxx_status.html but we can give it a try and see how far we get. Maybe it'll work out?
Modules are in a worse place than I thought for non-MSVC platforms. We need some serious support from build systems (cmake) on top of just compiler support. So this is not going to happen any time soon.
It's a pain point to have to include the iterator.h header yourself when using iterators on a type.
Granted there's circular references Option -> Iterator -> Option. Can we use template types to break the cycle in the code like we did for integers?