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

Is there a way to save my career from absolute disaster?

Find non-case sensitive string in a mixed list of elements?

Which one is the true statement?

Axiom Schema vs Axiom

Why the difference in type-inference over the as-pattern in two similar function definitions?

Would a completely good Muggle be able to use a wand?

Bartok - Syncopation (1): Meaning of notes in between Grand Staff

Does soap repel water?

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

Are police here, aren't itthey?

Grabbing quick drinks

Method for adding error messages to a dictionary given a key

Is French Guiana a (hard) EU border?

How many extra stops do monopods offer for tele photographs?

Why did CATV standarize in 75 ohms and everyone else in 50?

I want to delete every two lines after 3rd lines in file contain very large number of lines :

What connection does MS Office have to Netscape Navigator?

Should I tutor a student who I know has cheated on their homework?

How to edit “Name” property in GCI output?

0 rank tensor vs 1D vector

Solving system of ODEs with extra parameter

Reference request: Grassmannian and Plucker coordinates in type B, C, D

What did we know about the Kessel run before the prequels?

A small doubt about the dominated convergence theorem



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










9















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
    2 days 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
    2 days ago












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

    – dave
    2 days 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
    2 days ago
















9















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
    2 days 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
    2 days ago












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

    – dave
    2 days 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
    2 days ago














9












9








9


1






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 2 days ago









Guillaume Racicot

15.9k53770




15.9k53770






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 2 days ago









emma brainemma brain

1083




1083




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
    2 days 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
    2 days ago












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

    – dave
    2 days 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
    2 days ago













  • 3





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

    – François Andrieux
    2 days 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
    2 days ago












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

    – dave
    2 days 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
    2 days ago








3




3





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

– François Andrieux
2 days ago





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

– François Andrieux
2 days 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
2 days 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
2 days ago














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

– dave
2 days ago





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

– dave
2 days 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
2 days 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
2 days 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
    2 days ago


















11














You can use auto:



auto fptr = &f;


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






share|improve this answer























  • I like this answer a bit more than the accepted one. It is more C++11-ish even though it is not clear that OP has or wants a C++11 solution. But hey, C++11 is not the "all new exotic" standard any more.

    – TobiMcNamobi
    yesterday











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
    2 days 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
    2 days 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 2 days 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
    2 days 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
    2 days 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
2 days 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
2 days ago













11














You can use auto:



auto fptr = &f;


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






share|improve this answer























  • I like this answer a bit more than the accepted one. It is more C++11-ish even though it is not clear that OP has or wants a C++11 solution. But hey, C++11 is not the "all new exotic" standard any more.

    – TobiMcNamobi
    yesterday















11














You can use auto:



auto fptr = &f;


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






share|improve this answer























  • I like this answer a bit more than the accepted one. It is more C++11-ish even though it is not clear that OP has or wants a C++11 solution. But hey, C++11 is not the "all new exotic" standard any more.

    – TobiMcNamobi
    yesterday













11












11








11







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 2 days ago









Guillaume RacicotGuillaume Racicot

15.9k53770




15.9k53770












  • I like this answer a bit more than the accepted one. It is more C++11-ish even though it is not clear that OP has or wants a C++11 solution. But hey, C++11 is not the "all new exotic" standard any more.

    – TobiMcNamobi
    yesterday

















  • I like this answer a bit more than the accepted one. It is more C++11-ish even though it is not clear that OP has or wants a C++11 solution. But hey, C++11 is not the "all new exotic" standard any more.

    – TobiMcNamobi
    yesterday
















I like this answer a bit more than the accepted one. It is more C++11-ish even though it is not clear that OP has or wants a C++11 solution. But hey, C++11 is not the "all new exotic" standard any more.

– TobiMcNamobi
yesterday





I like this answer a bit more than the accepted one. It is more C++11-ish even though it is not clear that OP has or wants a C++11 solution. But hey, C++11 is not the "all new exotic" standard any more.

– TobiMcNamobi
yesterday










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

getting Checkpoint VPN SSL Network Extender working in the command lineHow to connect to CheckPoint VPN on Ubuntu 18.04LTS?Will the Linux ( red-hat ) Open VPNC Client connect to checkpoint or nortel VPN gateways?VPN client for linux machine + support checkpoint gatewayVPN SSL Network Extender in FirefoxLinux Checkpoint SNX tool configuration issuesCheck Point - Connect under Linux - snx + OTPSNX VPN Ububuntu 18.XXUsing Checkpoint VPN SSL Network Extender CLI with certificateVPN with network manager (nm-applet) is not workingWill the Linux ( red-hat ) Open VPNC Client connect to checkpoint or nortel VPN gateways?VPN client for linux machine + support checkpoint gatewayImport VPN config files to NetworkManager from command lineTrouble connecting to VPN using network-manager, while command line worksStart a VPN connection with PPTP protocol on command linestarting a docker service daemon breaks the vpn networkCan't connect to vpn with Network-managerVPN SSL Network Extender in FirefoxUsing Checkpoint VPN SSL Network Extender CLI with certificate

Cannot Extend partition with GParted The 2019 Stack Overflow Developer Survey Results Are In Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) 2019 Community Moderator Election ResultsCan't increase partition size with GParted?GParted doesn't recognize the unallocated space after my current partitionWhat is the best way to add unallocated space located before to Ubuntu 12.04 partition with GParted live?I can't figure out how to extend my Arch home partition into free spaceGparted Linux Mint 18.1 issueTrying to extend but swap partition is showing as Unknown in Gparted, shows proper from fdiskRearrange partitions in gparted to extend a partitionUnable to extend partition even though unallocated space is next to it using GPartedAllocate free space to root partitiongparted: how to merge unallocated space with a partition

Marilyn Monroe Ny fiainany manokana | Jereo koa | Meny fitetezanafanitarana azy.