From aa1c88a924d3102b7f1f7b9ec4806d83d8bddfea Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Fri, 28 Feb 2025 13:13:34 -0700 Subject: [PATCH] Add exmaple of capturing lambda in `Delegate` One downside to this approach is the delegate must first be stored to a variable, so it can be referenced in two different places, and ensure those two places refers to the same type. --- test/Signal/Delegate.test.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/Signal/Delegate.test.cpp b/test/Signal/Delegate.test.cpp index 85f259fa5..c289147c8 100644 --- a/test/Signal/Delegate.test.cpp +++ b/test/Signal/Delegate.test.cpp @@ -63,3 +63,9 @@ TEST(Delegate, DelegateNotEqualObjects) { auto delegate2 = NAS2D::Delegate{&handler2, &MockHandler::MockMethod}; EXPECT_NE(delegate1, delegate2); } + +TEST(Delegate, LambdaVariableCapture) { + const auto lambda = [](){ return 42; }; + auto delegate = NAS2D::Delegate{&lambda, &decltype(lambda)::operator()}; + EXPECT_EQ(42, delegate()); +}