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 fast would a person need to move to trick the eye?

How did people program for Consoles with multiple CPUs?

Preparing Indesign booklet with .psd graphics for print

Make solar eclipses exceedingly rare, but still have new moons

How did the Bene Gesserit know how to make a Kwisatz Haderach?

I believe this to be a fraud - hired, then asked to cash check and send cash as Bitcoin

multiple labels for a single equation

How do we know the LHC results are robust?

Help understanding this unsettling image of Titan, Epimetheus, and Saturn's rings?

Are there any unintended negative consequences to allowing PCs to gain multiple levels at once in a short milestone-XP game?

In excess I'm lethal

Why do airplanes bank sharply to the right after air-to-air refueling?

Contours of a clandestine nature

Different harmonic changes implied by a simple descending scale

Why do we use the plural of movies in this phrase "We went to the movies last night."?

Can we say or write : "No, it'sn't"?

If a black hole is created from light, can this black hole then move at speed of light?

Why do remote companies require working in the US?

How to transpose the 1st and -1th levels of arbitrarily nested array?

How to start emacs in "nothing" mode (`fundamental-mode`)

WOW air has ceased operation, can I get my tickets refunded?

How do scammers retract money, while you can’t?

What does convergence in distribution "in the Gromov–Hausdorff" sense mean?

What flight has the highest ratio of time difference to flight time?



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
    yesterday






  • 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
    yesterday












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

    – dave
    yesterday











  • @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
    yesterday
















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
    yesterday






  • 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
    yesterday












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

    – dave
    yesterday











  • @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
    yesterday














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 yesterday









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 yesterday









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
    yesterday






  • 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
    yesterday












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

    – dave
    yesterday











  • @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
    yesterday













  • 3





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

    – François Andrieux
    yesterday






  • 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
    yesterday












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

    – dave
    yesterday











  • @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
    yesterday








3




3





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

– François Andrieux
yesterday





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

– François Andrieux
yesterday




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
yesterday






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
yesterday














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

– dave
yesterday





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

– dave
yesterday













@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
yesterday






@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
yesterday













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
    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
    17 hours ago











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
    yesterday















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
    yesterday













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 yesterday









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
    yesterday

















  • 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
    yesterday
















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
yesterday





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
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
    17 hours 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
    17 hours ago













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 yesterday









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
    17 hours ago

















  • 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
    17 hours ago
















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
17 hours ago





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
17 hours ago










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

Club Baloncesto Breogán Índice Historia | Pavillón | Nome | O Breogán na cultura popular | Xogadores | Adestradores | Presidentes | Palmarés | Historial | Líderes | Notas | Véxase tamén | Menú de navegacióncbbreogan.galCadroGuía oficial da ACB 2009-10, páxina 201Guía oficial ACB 1992, páxina 183. Editorial DB.É de 6.500 espectadores sentados axeitándose á última normativa"Estudiantes Junior, entre as mellores canteiras"o orixinalHemeroteca El Mundo Deportivo, 16 setembro de 1970, páxina 12Historia do BreogánAlfredo Pérez, o último canoneiroHistoria C.B. BreogánHemeroteca de El Mundo DeportivoJimmy Wright, norteamericano do Breogán deixará Lugo por ameazas de morteResultados de Breogán en 1986-87Resultados de Breogán en 1990-91Ficha de Velimir Perasović en acb.comResultados de Breogán en 1994-95Breogán arrasa al Barça. "El Mundo Deportivo", 27 de setembro de 1999, páxina 58CB Breogán - FC BarcelonaA FEB invita a participar nunha nova Liga EuropeaCharlie Bell na prensa estatalMáximos anotadores 2005Tempada 2005-06 : Tódolos Xogadores da Xornada""Non quero pensar nunha man negra, mais pregúntome que está a pasar""o orixinalRaúl López, orgulloso dos xogadores, presume da boa saúde económica do BreogánJulio González confirma que cesa como presidente del BreogánHomenaxe a Lisardo GómezA tempada do rexurdimento celesteEntrevista a Lisardo GómezEl COB dinamita el Pazo para forzar el quinto (69-73)Cafés Candelas, patrocinador del CB Breogán"Suso Lázare, novo presidente do Breogán"o orixinalCafés Candelas Breogán firma el mayor triunfo de la historiaEl Breogán realizará 17 homenajes por su cincuenta aniversario"O Breogán honra ao seu fundador e primeiro presidente"o orixinalMiguel Giao recibiu a homenaxe do PazoHomenaxe aos primeiros gladiadores celestesO home que nos amosa como ver o Breo co corazónTita Franco será homenaxeada polos #50anosdeBreoJulio Vila recibirá unha homenaxe in memoriam polos #50anosdeBreo"O Breogán homenaxeará aos seus aboados máis veteráns"Pechada ovación a «Capi» Sanmartín e Ricardo «Corazón de González»Homenaxe por décadas de informaciónPaco García volve ao Pazo con motivo do 50 aniversario"Resultados y clasificaciones""O Cafés Candelas Breogán, campión da Copa Princesa""O Cafés Candelas Breogán, equipo ACB"C.B. Breogán"Proxecto social"o orixinal"Centros asociados"o orixinalFicha en imdb.comMario Camus trata la recuperación del amor en 'La vieja música', su última película"Páxina web oficial""Club Baloncesto Breogán""C. B. Breogán S.A.D."eehttp://www.fegaba.com

Vilaño, A Laracha Índice Patrimonio | Lugares e parroquias | Véxase tamén | Menú de navegación43°14′52″N 8°36′03″O / 43.24775, -8.60070

Cegueira Índice Epidemioloxía | Deficiencia visual | Tipos de cegueira | Principais causas de cegueira | Tratamento | Técnicas de adaptación e axudas | Vida dos cegos | Primeiros auxilios | Crenzas respecto das persoas cegas | Crenzas das persoas cegas | O neno deficiente visual | Aspectos psicolóxicos da cegueira | Notas | Véxase tamén | Menú de navegación54.054.154.436928256blindnessDicionario da Real Academia GalegaPortal das Palabras"International Standards: Visual Standards — Aspects and Ranges of Vision Loss with Emphasis on Population Surveys.""Visual impairment and blindness""Presentan un plan para previr a cegueira"o orixinalACCDV Associació Catalana de Cecs i Disminuïts Visuals - PMFTrachoma"Effect of gene therapy on visual function in Leber's congenital amaurosis"1844137110.1056/NEJMoa0802268Cans guía - os mellores amigos dos cegosArquivadoEscola de cans guía para cegos en Mortágua, PortugalArquivado"Tecnología para ciegos y deficientes visuales. Recopilación de recursos gratuitos en la Red""Colorino""‘COL.diesis’, escuchar los sonidos del color""COL.diesis: Transforming Colour into Melody and Implementing the Result in a Colour Sensor Device"o orixinal"Sistema de desarrollo de sinestesia color-sonido para invidentes utilizando un protocolo de audio""Enseñanza táctil - geometría y color. Juegos didácticos para niños ciegos y videntes""Sistema Constanz"L'ocupació laboral dels cecs a l'Estat espanyol està pràcticament equiparada a la de les persones amb visió, entrevista amb Pedro ZuritaONCE (Organización Nacional de Cegos de España)Prevención da cegueiraDescrición de deficiencias visuais (Disc@pnet)Braillín, un boneco atractivo para calquera neno, con ou sen discapacidade, que permite familiarizarse co sistema de escritura e lectura brailleAxudas Técnicas36838ID00897494007150-90057129528256DOID:1432HP:0000618D001766C10.597.751.941.162C97109C0155020