class __lambda_accumulator_unique { private: int total; // Το εσωτερικό state (capture by value) public: // Constructor που αρχικοποιεί το total (στην περίπτωσή μας με 0) __lambda_accumulator_unique(int initial_val) : total(initial_val) {} /** * Ο operator() ΔΕΝ είναι const. * Αυτό συμβαίνει επειδή χρησιμοποιήσαμε τη λέξη 'mutable'. * Αν έλειπε το 'mutable', η μέθοδος θα ήταν: * int operator()(int amount) const { ... } * και η γραμμή total += amount θα έβγαζε error στη μεταγλώττιση. */ int operator()(int amount) { total += amount; // Τροποποιούμε το data member της κλάσης return total; } };