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

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T09:22:27+00:00 2026-05-23T09:22:27+00:00

Is there a way to find out what the return type of a function

  • 0

Is there a way to find out what the return type of a function (or even better of a function pointer) is ?

I’ve got the following code, which breaks when I use a void function pointer, but works fine for any other return type. The error I get when using a void function pointer from gcc 4.5 is:

error: void value not ignored as it ought to be

Which makes sense. So obviously I need to check if function pointer returns something, and then obtain the result and return it.

template <class F,typename R> class Instruction
{
  protected:
    F (func);
    R result;

  public:

   template <typename T>
   Instruction(T const& f)
   {
     func = &f;
   };

   template <typename A> void execute(A const& a)
   {
     result = (func)(a);
   };
   template <typename A> void execute(A const& a,A const& b)
   {
     result = (func)(a,b);
   };
   template <typename A> void execute(A const& a,A const& b,A const& c)
   {
     result = (func)(a,b,c);
   };
   R get_result()
   {
     return result;
   }; 
};

Normally I use a function pointer to a function which does something mostly arithmetic and I can take care of any return type at instantiation other than void functions. I’ve tried instantiating as:

     Instruction<ptr2func2,void> foo(bar);
     Instruction<ptr2func2,(*void)> foo(bar);

but in both cases it fails.

The second template argument at instantiation is used in order to define what the return type will be.

  • 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-23T09:22:28+00:00Added an answer on May 23, 2026 at 9:22 am

    Try a template partial specialization on void:

    template <class F> class Instruction<F, void>
    {
      protected:
        F (func);
    
      public:
    
       template <typename T>
       Instruction(T const& f)
       {
         func = &f;
       };
    
       template <typename A> void execute(A const& a)
       {
         (func)(a);
       };
       template <typename A> void execute(A const& a,A const& b)
       {
         (func)(a,b);
       };
       template <typename A> void execute(A const& a,A const& b,A const& c)
       {
         (func)(a,b,c);
       };
    };
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Is there any way to find out if a file is a directory? I
Is there any way to find out what exceptions might be thrown by any
Is there any way to find out if the user pressed the delete key
Is there a way to find out when in a LAN anyone plugs in
Is there a way to find out the size of a SQL Server database
Is there a way to find out what the total size of the unextracted
Is there a way to find out the z-order of all active windows in
Is there any way to find out if a property is mapped to a
Is there a way to find out the time since the JVM started? Of
Is there a way to find out if a light is enabled in GLSL

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.