Pointer to a function with variable argumenrs number
===

I have declared:

    class aaa {
    public:
        static std::queue<QPair<void (*)( ... ), int> > m_commands;
        static int bbb();
        static void ccc();
    };

and in bbb() method I wrote:

    int aaa::bbb() {
        m_commands.push( qMakePair( aaa::ccc, 0 ) );
    }

but it complains about:

    error C2664: 'void std::queue<_Ty>::push(QPair<T1,T2> &&)' : cannot convert parameter 1 from 'QPair<T1,T2> *' to 'QPair<T1,T2> &&'

why? When I had function like that:

    void reg( void ( *invoker )( ... ), int args  ) {
        m_commands.push( qMakePair( invoker, args ) );
    }

I could easily send to the above function a static function this way:

    reg( aaa::ccc, 0 );

Thanks!