From d231550ec18155dc4ab7ce1c8519c90407cfb012 Mon Sep 17 00:00:00 2001 From: Sean Parent Date: Thu, 1 Feb 2024 14:25:38 -0800 Subject: [PATCH] Going with lambda. --- test/property_model_eval/queryable_sheet.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/property_model_eval/queryable_sheet.cpp b/test/property_model_eval/queryable_sheet.cpp index 5d53c19b..e870d282 100644 --- a/test/property_model_eval/queryable_sheet.cpp +++ b/test/property_model_eval/queryable_sheet.cpp @@ -51,7 +51,14 @@ void queryable_sheet_t::begin_monitoring() { sheet_m.monitor_enabled(dummy, &v[0], 1 + &v[0], std::bind(adobe::assign(), _1, std::ref(priority_accessed_m[i]))); + /* + binding to a reference to an any_regular_t is not working with Clang 14 and the gnu + standard library. Using a lambda instead. + sheet_m.monitor_value(name, std::bind(adobe::assign(), _1, std::ref(value_m[i]))); + */ + sheet_m.monitor_value(name, + [i, this](const any_regular_t& value) { value_m[i] = value; }); sheet_m.monitor_contributing(name, dictionary_t(), std::bind(adobe::assign(), _1, std::ref(contributors_m[i]))); @@ -61,6 +68,7 @@ void queryable_sheet_t::begin_monitoring() { e = output_index_m.end(); iter != e; ++iter) { std::size_t i(iter->second); + sheet_m.monitor_value(name_m[i], std::bind(adobe::assign(), _1, std::ref(value_m[i]))); sheet_m.monitor_contributing(name_m[i], dictionary_t(),