diff --git a/src/op_cache.cpp b/src/op_cache.cpp
index eadb370580b05f0b9ac1893987bef7678dd48043..b9aa9bcb84febf0cccab3ca7ff230a23278d40a6 100644
--- a/src/op_cache.cpp
+++ b/src/op_cache.cpp
@@ -25,7 +25,7 @@ bool
 OpValueCache::onValuesAdded(const std::vector<Sp<Value>>& vals) {
     std::vector<Sp<Value>> newValues;
     for (const auto& v : vals) {
-        auto viop = values.emplace(v->id, OpCacheValueStorage{v});
+        auto viop = values.emplace(v->id, v);
         if (viop.second) {
             newValues.emplace_back(v);
         } else {
diff --git a/src/op_cache.h b/src/op_cache.h
index 112d5ea5df711a36d78041a06077c9e55fe42357..79cd8f140faac06fe1e21a976fbf02c7fa0b8f18 100644
--- a/src/op_cache.h
+++ b/src/op_cache.h
@@ -27,7 +27,7 @@ struct OpCacheValueStorage
 {
     Sp<Value> data {};
     unsigned refCount {1};
-    OpCacheValueStorage(Sp<Value> val = {}) : data(val) {}
+    OpCacheValueStorage(Sp<Value> val) : data(val) {}
 };
 
 class OpValueCache {