Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6807947
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T19:53:42+00:00 2026-05-26T19:53:42+00:00

I have this pattern: Thing * y = FindNearestItem(); if (y && (MenuElement *

  • 0

I have this pattern:

Thing * y = FindNearestItem();
if (y && (MenuElement * x = FindMenuElementNamed("Identity")))
  x->SetText(FString("%.1f", y));
else if (x)
  x->Clear();
if (y && (MenuElement * x = FindMenuElementNamed("X1")))
  x->SetLocalData(y);
else if (x)
  x->Clear();

Basically, I want to use a static table:
[WARNING: really sloppy conceptual code, not valid, I’m a noob, you’ve been warned]:

struct Table {
  const char * label;
  ?lambda? lambda;
} MyTable[] = {
  "Identity", [] (const char * label, Thing * y) { MenuElement * x = FindMenuElementNamed(label); (y && x) ? x->SetText(FString("%.1f", y)) : x->Clear(); },
  "X1", [] (const char * label, Thing * y) { MenuElement * x = FindMenuElementNamed(label); (y && x) ? x->SetLocalData(y) : x->Clear(); },
};

Thing * y = FindNearestItem();
for (int i = 0; i != countof(MyTable); ++i)
  MyTable[i].lambda(MyTable[i].label, y);

PLEASE keep in mind that that the action differs for each label – each row in my table.

So the pattern is mostly the same, but the variance is in the action taken, though it uses the same set of data (x,y,label) in each case. But I cannot simply call x->DoAppropriateThingFor(label,y); I’d just be back to creating a long if/else cascade based on label…

Feel free to ask me for further clarification. I’m muddling around in the dark with lambdas since I’ve not had a chance to really use them yet…

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T19:53:42+00:00Added an answer on May 26, 2026 at 7:53 pm

    As long as all of the lambdas are captureless (i.e., the [] is empty), you can use a function pointer:

    struct Table {
        const char* label;
        void (*lambda)(const char*, Thing*);
    };
    

    If any of the lambdas are stateful (i.e., the [] is not empty), then you can’t use a function pointer. You can use std::function, though:

    struct Table {
        const char* label;
        std::function<void(const char*, Thing*)> lambda;
    };
    

    Visual C++ 2010 does not support the lambda-to-function-pointer conversion (that conversion was added to the language after Visual C++ 2010 was released), but the Visual C++ 11 Developer Preview does support the conversion. If you are using Visual C++ 2010, you can use the std::function solution.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Ok so if I have this pattern: ab&bc&cd&de&ef And I need to replace all
I have this piece of code: function func1(text) { var pattern = /([\s\S]*?)(\<\?(?:attrib |if
I have a bunch of python methods that follow this pattern: def delete_session(guid): conn
In our code we have quite a few cases of this pattern: class outerClass
In AS3 you have a function on a string with this signature: function replace(pattern:*,
Actually, this question seems to have two parts: How to implement pattern matching? How
No, this is not a question about generics. I have a Factory pattern with
I have this abstract factory pattern that I use in as3 that I am
Hi i have this command pattern example from the web , but there is
I'm kinda stuck here. I have this pattern: <a class=title href=showthread.php?t=XXXXX id=thread_title_XXX>DATADATA</a> I know

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.