#include <iostream>
using namespace std;

struct Matrix {
    
    struct Adder {
        Matrix& m;
        int index;
    
        Adder(Matrix& m) : m(m), index(1) {}
    
        Adder& operator,(float value) {
            m.set(index++, value);
            return *this;
        }
        
    };
    
    void set(int index, float value) {
        cout << "Matrix[" << index << "] = " << value << endl;
    }
    
    Adder operator<<(float value) {
        set(0, value);
        return Adder(*this);
    }
    
};


int main() {
    Matrix mat;
    mat << 5, 10, 15, 20;
    
}