declare as function pointer and initialize in the same line The Next CEO of Stack OverflowWhat are the differences between a pointer variable and a reference variable in C++?What is a smart pointer and when should I use one?Returning unique_ptr from functionsWhy is reading lines from stdin much slower in C++ than Python?Image Processing: Algorithm Improvement for 'Coca-Cola Can' RecognitionWhy should I use a pointer rather than the object itself?Replacing a 32-bit loop counter with 64-bit introduces crazy performance deviationsFunction pointer, which can point to every thing?Has a std::byte pointer the same aliasing implications as char*?declare and define function pointer variable in one line

How can I get through very long and very dry, but also very useful technical documents when learning a new tool?

Inappropriate reference requests from Journal reviewers

What does "Its cash flow is deeply negative" mean?

How to write papers efficiently when English isn't my first language?

How do I go from 300 unfinished/half written blog posts, to published posts?

Anatomically Correct Mesopelagic Aves

Describing a person. What needs to be mentioned?

Why does GHC infer a monomorphic type here, even with MonomorphismRestriction disabled?

How to use tikz in fbox?

What do "high sea" and "carry" mean in this sentence?

Horror movie/show or scene where a horse creature opens its mouth really wide and devours a man in a stables

Was a professor correct to chastise me for writing "Prof. X" rather than "Professor X"?

How to write the block matrix in LaTex?

Too much space between section and text in a twocolumn document

Customer Requests (Sometimes) Drive Me Bonkers!

Does the Brexit deal have to be agreed by both Houses?

Whats the best way to handle refactoring a big file?

Is it a good idea to use COLUMN AS (left([Another_Column],(4)) instead of LEFT in the select?

Removing read access from a file

How to make a software documentation "officially" citable?

If the heap is initialized for security, then why is the stack uninitialized?

How long to clear the 'suck zone' of a turbofan after start is initiated?

Return the Closest Prime Number

Is a stroke of luck acceptable after a series of unfavorable events?



declare as function pointer and initialize in the same line



The Next CEO of Stack OverflowWhat are the differences between a pointer variable and a reference variable in C++?What is a smart pointer and when should I use one?Returning unique_ptr from functionsWhy is reading lines from stdin much slower in C++ than Python?Image Processing: Algorithm Improvement for 'Coca-Cola Can' RecognitionWhy should I use a pointer rather than the object itself?Replacing a 32-bit loop counter with 64-bit introduces crazy performance deviationsFunction pointer, which can point to every thing?Has a std::byte pointer the same aliasing implications as char*?declare and define function pointer variable in one line










8















In C++ how do we do the following



// fundamental language construct 
type name = value;

// for example
int x = y;


with function pointers?



 typedef (char)(*FP)(unsigned);

// AFAIK not possible in C++
FP x = y ;


I can use lambdas



 FP x = []( unsigned k) -> char return char(k); 


But I do not know how to do this without lambda. Any ideas? This is not an answer. we know this works:



void whatever () 
typedef void (*FP) (void);
FP x = whatever ;


The question is if one can do this in one line in C++. Like one can do it in one line in C++ with every other type kind.










share|improve this question









New contributor




emma brain is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 3





    You could always stick with auto x = &the_function;'.

    – François Andrieux
    9 hours ago






  • 1





    The name of a function pointer variable appears between the return type and the arguments It won't look like type name = value;.

    – François Andrieux
    9 hours ago












  • You're missing the & before whatever. FP x = &whatever ;

    – dave
    9 hours ago











  • @dave: That's the same for functions, you don't need the ampersand. @emma: Why should that not be possible in C++? This should work fine (except for the (char), which should be char in your typedef)

    – andreee
    9 hours ago
















8















In C++ how do we do the following



// fundamental language construct 
type name = value;

// for example
int x = y;


with function pointers?



 typedef (char)(*FP)(unsigned);

// AFAIK not possible in C++
FP x = y ;


I can use lambdas



 FP x = []( unsigned k) -> char return char(k); 


But I do not know how to do this without lambda. Any ideas? This is not an answer. we know this works:



void whatever () 
typedef void (*FP) (void);
FP x = whatever ;


The question is if one can do this in one line in C++. Like one can do it in one line in C++ with every other type kind.










share|improve this question









New contributor




emma brain is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 3





    You could always stick with auto x = &the_function;'.

    – François Andrieux
    9 hours ago






  • 1





    The name of a function pointer variable appears between the return type and the arguments It won't look like type name = value;.

    – François Andrieux
    9 hours ago












  • You're missing the & before whatever. FP x = &whatever ;

    – dave
    9 hours ago











  • @dave: That's the same for functions, you don't need the ampersand. @emma: Why should that not be possible in C++? This should work fine (except for the (char), which should be char in your typedef)

    – andreee
    9 hours ago














8












8








8








In C++ how do we do the following



// fundamental language construct 
type name = value;

// for example
int x = y;


with function pointers?



 typedef (char)(*FP)(unsigned);

// AFAIK not possible in C++
FP x = y ;


I can use lambdas



 FP x = []( unsigned k) -> char return char(k); 


But I do not know how to do this without lambda. Any ideas? This is not an answer. we know this works:



void whatever () 
typedef void (*FP) (void);
FP x = whatever ;


The question is if one can do this in one line in C++. Like one can do it in one line in C++ with every other type kind.










share|improve this question









New contributor




emma brain is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












In C++ how do we do the following



// fundamental language construct 
type name = value;

// for example
int x = y;


with function pointers?



 typedef (char)(*FP)(unsigned);

// AFAIK not possible in C++
FP x = y ;


I can use lambdas



 FP x = []( unsigned k) -> char return char(k); 


But I do not know how to do this without lambda. Any ideas? This is not an answer. we know this works:



void whatever () 
typedef void (*FP) (void);
FP x = whatever ;


The question is if one can do this in one line in C++. Like one can do it in one line in C++ with every other type kind.







c++






share|improve this question









New contributor




emma brain is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




emma brain is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited 7 hours ago









Guillaume Racicot

15.8k53569




15.8k53569






New contributor




emma brain is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 9 hours ago









emma brainemma brain

963




963




New contributor




emma brain is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





emma brain is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






emma brain is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







  • 3





    You could always stick with auto x = &the_function;'.

    – François Andrieux
    9 hours ago






  • 1





    The name of a function pointer variable appears between the return type and the arguments It won't look like type name = value;.

    – François Andrieux
    9 hours ago












  • You're missing the & before whatever. FP x = &whatever ;

    – dave
    9 hours ago











  • @dave: That's the same for functions, you don't need the ampersand. @emma: Why should that not be possible in C++? This should work fine (except for the (char), which should be char in your typedef)

    – andreee
    9 hours ago













  • 3





    You could always stick with auto x = &the_function;'.

    – François Andrieux
    9 hours ago






  • 1





    The name of a function pointer variable appears between the return type and the arguments It won't look like type name = value;.

    – François Andrieux
    9 hours ago












  • You're missing the & before whatever. FP x = &whatever ;

    – dave
    9 hours ago











  • @dave: That's the same for functions, you don't need the ampersand. @emma: Why should that not be possible in C++? This should work fine (except for the (char), which should be char in your typedef)

    – andreee
    9 hours ago








3




3





You could always stick with auto x = &the_function;'.

– François Andrieux
9 hours ago





You could always stick with auto x = &the_function;'.

– François Andrieux
9 hours ago




1




1





The name of a function pointer variable appears between the return type and the arguments It won't look like type name = value;.

– François Andrieux
9 hours ago






The name of a function pointer variable appears between the return type and the arguments It won't look like type name = value;.

– François Andrieux
9 hours ago














You're missing the & before whatever. FP x = &whatever ;

– dave
9 hours ago





You're missing the & before whatever. FP x = &whatever ;

– dave
9 hours ago













@dave: That's the same for functions, you don't need the ampersand. @emma: Why should that not be possible in C++? This should work fine (except for the (char), which should be char in your typedef)

– andreee
9 hours ago






@dave: That's the same for functions, you don't need the ampersand. @emma: Why should that not be possible in C++? This should work fine (except for the (char), which should be char in your typedef)

– andreee
9 hours ago













2 Answers
2






active

oldest

votes


















11














Whenever you can write a typedef, you can also write a variable declaration with no typedef, with almost identical syntax.



Example:



 // typedef
typedef char(*FP)(unsigned);
FP x = y ;

// no typedef
char(*x)(unsigned) = y;


Remove the typedef keyword, and you have a variable declaration. Slap an initialisation on it if you want.






share|improve this answer























  • Works just as well as in C, and can also be used for array types: char (*img)[width][3] = malloc(height*sizeof(*img)); While this syntax is pretty useless in C++ (no array types with runtime sizes), it works well in C and sports the same counterintuitive syntax.

    – cmaster
    3 hours ago


















10














You can use auto:



auto fptr = &f;


It skips the need of a typedef and conserve a nice syntax.






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );






    emma brain is a new contributor. Be nice, and check out our Code of Conduct.









    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55400483%2fdeclare-as-function-pointer-and-initialize-in-the-same-line%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    11














    Whenever you can write a typedef, you can also write a variable declaration with no typedef, with almost identical syntax.



    Example:



     // typedef
    typedef char(*FP)(unsigned);
    FP x = y ;

    // no typedef
    char(*x)(unsigned) = y;


    Remove the typedef keyword, and you have a variable declaration. Slap an initialisation on it if you want.






    share|improve this answer























    • Works just as well as in C, and can also be used for array types: char (*img)[width][3] = malloc(height*sizeof(*img)); While this syntax is pretty useless in C++ (no array types with runtime sizes), it works well in C and sports the same counterintuitive syntax.

      – cmaster
      3 hours ago















    11














    Whenever you can write a typedef, you can also write a variable declaration with no typedef, with almost identical syntax.



    Example:



     // typedef
    typedef char(*FP)(unsigned);
    FP x = y ;

    // no typedef
    char(*x)(unsigned) = y;


    Remove the typedef keyword, and you have a variable declaration. Slap an initialisation on it if you want.






    share|improve this answer























    • Works just as well as in C, and can also be used for array types: char (*img)[width][3] = malloc(height*sizeof(*img)); While this syntax is pretty useless in C++ (no array types with runtime sizes), it works well in C and sports the same counterintuitive syntax.

      – cmaster
      3 hours ago













    11












    11








    11







    Whenever you can write a typedef, you can also write a variable declaration with no typedef, with almost identical syntax.



    Example:



     // typedef
    typedef char(*FP)(unsigned);
    FP x = y ;

    // no typedef
    char(*x)(unsigned) = y;


    Remove the typedef keyword, and you have a variable declaration. Slap an initialisation on it if you want.






    share|improve this answer













    Whenever you can write a typedef, you can also write a variable declaration with no typedef, with almost identical syntax.



    Example:



     // typedef
    typedef char(*FP)(unsigned);
    FP x = y ;

    // no typedef
    char(*x)(unsigned) = y;


    Remove the typedef keyword, and you have a variable declaration. Slap an initialisation on it if you want.







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered 9 hours ago









    n.m.n.m.

    73.7k885172




    73.7k885172












    • Works just as well as in C, and can also be used for array types: char (*img)[width][3] = malloc(height*sizeof(*img)); While this syntax is pretty useless in C++ (no array types with runtime sizes), it works well in C and sports the same counterintuitive syntax.

      – cmaster
      3 hours ago

















    • Works just as well as in C, and can also be used for array types: char (*img)[width][3] = malloc(height*sizeof(*img)); While this syntax is pretty useless in C++ (no array types with runtime sizes), it works well in C and sports the same counterintuitive syntax.

      – cmaster
      3 hours ago
















    Works just as well as in C, and can also be used for array types: char (*img)[width][3] = malloc(height*sizeof(*img)); While this syntax is pretty useless in C++ (no array types with runtime sizes), it works well in C and sports the same counterintuitive syntax.

    – cmaster
    3 hours ago





    Works just as well as in C, and can also be used for array types: char (*img)[width][3] = malloc(height*sizeof(*img)); While this syntax is pretty useless in C++ (no array types with runtime sizes), it works well in C and sports the same counterintuitive syntax.

    – cmaster
    3 hours ago













    10














    You can use auto:



    auto fptr = &f;


    It skips the need of a typedef and conserve a nice syntax.






    share|improve this answer



























      10














      You can use auto:



      auto fptr = &f;


      It skips the need of a typedef and conserve a nice syntax.






      share|improve this answer

























        10












        10








        10







        You can use auto:



        auto fptr = &f;


        It skips the need of a typedef and conserve a nice syntax.






        share|improve this answer













        You can use auto:



        auto fptr = &f;


        It skips the need of a typedef and conserve a nice syntax.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 9 hours ago









        Guillaume RacicotGuillaume Racicot

        15.8k53569




        15.8k53569




















            emma brain is a new contributor. Be nice, and check out our Code of Conduct.









            draft saved

            draft discarded


















            emma brain is a new contributor. Be nice, and check out our Code of Conduct.












            emma brain is a new contributor. Be nice, and check out our Code of Conduct.











            emma brain is a new contributor. Be nice, and check out our Code of Conduct.














            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55400483%2fdeclare-as-function-pointer-and-initialize-in-the-same-line%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

            Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

            François Viète Contents Biography Work and thought Bibliography See also Notes Further reading External links Navigation menup. 21Google Bookspp. 75–77Google BooksDe thou (from University of Saint Andrews)ArchivedGoogle BooksGoogle BooksGoogle BooksGoogle booksGoogle Bookscc-parthenay.frL'histoire universelle (fr)Universal History (en)ArchivedAdsabs.harvard.eduPagesperso-orange.frArchive.orgChikara Sasaki. Descartes' mathematical thought p.259Google BooksGoogle BooksGoogle Bookspp. 152 and onwardGoogle BooksGoogle BooksScribd.comGoogle Books1257-7979Google BooksGoogle BooksGoogle BooksGoogle BooksGoogle BooksGoogle BooksGallica.bnf.frGoogle BooksGoogle Books"François Viète"Francois Viète: Father of Modern Algebraic NotationThe Lawyer and the GamblerAbout TarporleySite de Jean-Paul GuichardL'algèbre nouvelle"About the Harmonicon"cb120511976(data)1188044800000 0001 0913 5903n82164680ola2013766880073431702w6vt1sb70287374827140948071409480