think this user iterator will work

This commit is contained in:
Frodo Baggins 2024-10-21 23:19:51 -07:00
parent e96afcd1cb
commit 3c6d335be4

View File

@ -11,6 +11,8 @@
#include <boost/container/list.hpp>
#include <boost/container/small_vector.hpp>
#include <boost/intrusive/list.hpp>
#include <boost/range/adaptors.hpp>
#include <boost/range/algorithm/unique.hpp>
#include "common/assert.h"
#include "shader_recompiler/exception.h"
@ -211,6 +213,21 @@ public:
return std::bit_cast<DefinitionType>(definition);
}
auto users() {
return boost::adaptors::transform(
boost::unique(uses,
[](const IR::Use& a, const IR::Use& b) { return a.user == b.user; }),
[](const IR::Use& use) { return use.user; });
}
auto user_begin() {
return users().begin();
}
auto user_end() {
return users().end();
}
private:
struct NonTriviallyDummy {
NonTriviallyDummy() noexcept {}