Consider this example:
struct A {
    int val;
    A(int val) : val(val){};
    A operator+(const A& a1) {
        return (+[](const A& a1, const A& a2) -> A {
            return A(a1.val + a2.val);
        })(*this, a1);
    };
};
int main(int argc, char* argv[]) {
    A a(14);
    A b(12);
    auto c = a + b;
    return 0;
}
I have two questions:
- Will the compiler optimize-out the use of lambda in this case (which is just wrapper into the 
operator+or will there be any overhead? - Is there any simpler syntax for writing operators using lambda functions?
 
Aucun commentaire:
Enregistrer un commentaire