From 72e5777f22b2c4ff07aa0270f1c7e11f10477781 Mon Sep 17 00:00:00 2001 From: Finlay Marno Date: Wed, 23 Apr 2025 17:22:05 +0100 Subject: [PATCH 1/3] Add missing template args list after the use of the template keyword Since https://github.com/llvm/llvm-project/pull/80801, clang requires an explicit template list after the use of the template keyword for template member function. --- include/nop/rpc/interface.h | 2 +- include/nop/types/variant.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/nop/rpc/interface.h b/include/nop/rpc/interface.h index 45b2049..9ab8524 100644 --- a/include/nop/rpc/interface.h +++ b/include/nop/rpc/interface.h @@ -244,7 +244,7 @@ struct InterfaceMethod { template static void Invoke(Sender* sender, Status* return_value, Args... args) { - sender->template SendMethod(InterfaceMethod::Selector, return_value, + sender->template SendMethod<>(InterfaceMethod::Selector, return_value, std::forward_as_tuple(args...)); } diff --git a/include/nop/types/variant.h b/include/nop/types/variant.h index cffbde1..b6ebfab 100644 --- a/include/nop/types/variant.h +++ b/include/nop/types/variant.h @@ -238,7 +238,7 @@ class Variant { // resulting type. template void Construct(Args&&... args) { - index_ = value_.template Construct(std::forward(args)...); + index_ = value_.template Construct<>(std::forward(args)...); } void Construct(EmptyVariant) {} @@ -255,14 +255,14 @@ class Variant { // multiple element types. template void Assign(TypeTag, U&& value) { - if (!value_.template Assign(TypeTag{}, index_, std::forward(value))) { + if (!value_.template Assign<>(TypeTag{}, index_, std::forward(value))) { Destruct(); Construct(TypeTag{}, std::forward(value)); } } template void Assign(T&& value) { - if (!value_.template Assign(index_, std::forward(value))) { + if (!value_.template Assign<>(index_, std::forward(value))) { Destruct(); Construct(std::forward(value)); } From 64257cdd754b72972b6c648a06c79cc9a9524c54 Mon Sep 17 00:00:00 2001 From: Finlay Marno Date: Wed, 23 Apr 2025 17:46:28 +0100 Subject: [PATCH 2/3] fixup! Add missing template args list after the use of the template keyword --- include/nop/rpc/interface.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/nop/rpc/interface.h b/include/nop/rpc/interface.h index 9ab8524..e383ca5 100644 --- a/include/nop/rpc/interface.h +++ b/include/nop/rpc/interface.h @@ -245,7 +245,7 @@ struct InterfaceMethod { static void Invoke(Sender* sender, Status* return_value, Args... args) { sender->template SendMethod<>(InterfaceMethod::Selector, return_value, - std::forward_as_tuple(args...)); + std::forward_as_tuple(args...)); } // Dispatches the given handler op, getting the arguments from the given From b1d0ffad3d2f25edab5fe844112d186ed1ac3c98 Mon Sep 17 00:00:00 2001 From: Finlay Marno Date: Wed, 23 Apr 2025 17:47:11 +0100 Subject: [PATCH 3/3] fixup! Add missing template args list after the use of the template keyword --- include/nop/types/variant.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/nop/types/variant.h b/include/nop/types/variant.h index b6ebfab..98278f8 100644 --- a/include/nop/types/variant.h +++ b/include/nop/types/variant.h @@ -255,7 +255,8 @@ class Variant { // multiple element types. template void Assign(TypeTag, U&& value) { - if (!value_.template Assign<>(TypeTag{}, index_, std::forward(value))) { + if (!value_.template Assign<>(TypeTag{}, index_, + std::forward(value))) { Destruct(); Construct(TypeTag{}, std::forward(value)); }