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 8792623
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T23:00:21+00:00 2026-06-13T23:00:21+00:00

What is the difference between typedef double F(double) and typdedef double (*FPT)(double); ? It

  • 0

What is the difference between

typedef double F(double)

and

typdedef double (*FPT)(double);

?

It seems to me that I can pass both as arguments to a function, i.e.

bar1(FPT f);
bar2(F f); 

but while I can do

FPT f = &foo;

I can not do

F f = foo;

i.e. I can not create variables of type F?

  • 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-06-13T23:00:22+00:00Added an answer on June 13, 2026 at 11:00 pm

    You’re right in many ways. F is a function type, and FPT is a function pointer type.

    If you have an object of function type, you can take its address and get a function pointer. However, objects of function type aren’t real, first-class C++ objects. Only actual functions are of such a type, and you can’t create an object that is a function (other than by declaring a function!) and thus you cannot assign to it (as in F f = foo;).

    The only way you can refer to a function is via a function pointer or reference:

    FPT f1 = &foo;
    F * f2 = &foo;
    F & f3 = foo;
    

    See also this answer.

    Note that for a callback I would prefer the reference type over the pointer type, because it’s more natural compared to how you pass any other variable, and because you can apply address-of and decay to the reference and get the pointer, which you can’t do with a pointer:

    double callme(F & f, double val)       // not: "F *" or "FPT"
    {
        return f(val);
    
        // "&f" and "std::decay<F>::type" still make sense
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Whats the difference between std::function<> and a standard function pointer? that is: typedef std::function<int(int)>
Can anybody explain the difference between #define int* char and typedef int* char;
The difference between Chr and Char when used in converting types is that one
Can any one explain difference between position and anchor point in cocos-2D with some
Possible Duplicates: Why should we typedef a struct so often in C? Difference between
What is the difference between a double ** and a double (*)[2]. If I
Possible Duplicate: Difference between 'struct' and 'typedef struct' in C++? what is the difference
is there difference between with or without * for function pointer in C? my
I can't seem to understand the difference between the following to pointer notations, can
Possible Duplicate: Difference between 'struct' and 'typedef struct' in C++? Is there a difference

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.