Support `std::list` iteration & modification
Add support for iterating & modifying elements in std::list. Close #2369
- [x] implement insertion/removal logic
- [x] add simple list examples
- [ ] add insertion/removal examples
@wsmoses there seem to be issues with iterators for the reverse pass (std::list::begin()/end()).
Should iterators work by default, especially since they just work on references and && here, or do they need extra treatment in Enzyme? :)
it should work perfectly fine, sorry can you point me to the small snippet which fails?
Skipping -O0 for now to go to more important functionality.
I added a test test_modify_list that modifies a value in an existing list, which should mark the modified value in the list as active variable and track it. The runtime result is wrong, as the test still treats the list values as constants.
https://fwd.gymni.ch/gLdXSO
I think we need a special treatment for .front()?