On Tue, 25 Feb 2020 at 10:19, Ville Voutilainen
<ville.voutilai...@gmail.com> wrote:
> Or perhaps qEmit(this)->my_signal(Args...);
>
> and hide the befriending of qEmit (so that private/protected don't

This doesn't even need friending.

#include <iostream>

template <class T>
struct qEmit
{
    T* that;
    qEmit(T* it) : that(it) {}
    T* operator->() {return that;}
};

struct X
{
    void sig1() {std::cout << "sig1\n";}
    void sig2() {std::cout << "sig2\n";}
    void foo() {
        qEmit(this)->sig1();
        qEmit(this)->sig2();
    }
};

int main()
{
    X x;
    x.foo();
}
_______________________________________________
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to