aboutsummaryrefslogtreecommitdiffstats
path: root/libdevcore/CommonData.h
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-10-16 01:50:10 +0800
committerGitHub <noreply@github.com>2018-10-16 01:50:10 +0800
commit8677d9276a2188e0425e7abcad11749bdeee3586 (patch)
tree86b8077d91fd8b86a5a92bb1c3da0bdbe7d90ad9 /libdevcore/CommonData.h
parent8a9f5262acbc38bf2ed87a7ad48b27d0b53bea4f (diff)
parent04612936c2ceb41e1c63bfa637eb65f000319c23 (diff)
downloaddexon-solidity-8677d9276a2188e0425e7abcad11749bdeee3586.tar
dexon-solidity-8677d9276a2188e0425e7abcad11749bdeee3586.tar.gz
dexon-solidity-8677d9276a2188e0425e7abcad11749bdeee3586.tar.bz2
dexon-solidity-8677d9276a2188e0425e7abcad11749bdeee3586.tar.lz
dexon-solidity-8677d9276a2188e0425e7abcad11749bdeee3586.tar.xz
dexon-solidity-8677d9276a2188e0425e7abcad11749bdeee3586.tar.zst
dexon-solidity-8677d9276a2188e0425e7abcad11749bdeee3586.zip
Merge pull request #5222 from ethereum/yul-block-flattener
[WIP] Yul: Introduces a block flattening pass
Diffstat (limited to 'libdevcore/CommonData.h')
-rw-r--r--libdevcore/CommonData.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/libdevcore/CommonData.h b/libdevcore/CommonData.h
index 98136b44..f208c425 100644
--- a/libdevcore/CommonData.h
+++ b/libdevcore/CommonData.h
@@ -239,9 +239,10 @@ bool contains(T const& _t, V const& _v)
/// on the current element and after that. The actual replacement takes
/// place at the end, but already visited elements might be invalidated.
/// If nothing is replaced, no copy is performed.
-template <class T>
-void iterateReplacing(std::vector<T>& _vector, std::function<boost::optional<std::vector<T>>(T&)> _f)
+template <typename T, typename F>
+void iterateReplacing(std::vector<T>& _vector, const F& _f)
{
+ // Concept: _f must be Callable, must accept param T&, must return optional<vector<T>>
bool useModified = false;
std::vector<T> modifiedVector;
for (size_t i = 0; i < _vector.size(); ++i)