Function returning pointer to itself?

前端 未结 4 1769
闹比i
闹比i 2020-12-28 14:35

Is it possible in C++ to write a function that returns a pointer to itself?

If no, suggest some other solution to make the following syntax work:

som         


        
4条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-28 15:18

    struct function
    {
       function operator () ()
       { 
           //do stuff;
           return function();
       }
    };
    
    int main()
    {
       function f;
       f()()()()()();
    }
    

    You can choose to return a reference to function if needed and return *this;

    Update: Of course, it is syntactically impossible for a function of type T to return T* or T&

    Update2:

    Of course, if you want one to preserve your syntax... that is

    some_type f()
    {
    }
    

    Then here's an Idea

    struct functor;
    functor f();
    struct functor
    {
       functor operator()()
       {
          return f();
       }
    };
    
    functor f()
    {  
        return functor();
    }
    
    int main()
    {
        f()()()()();
    }
    

提交回复
热议问题