In C++, torch::nn::Sequential initializes its arguments from right to left

I just found that torch::nn::Sequential does not evaluate its arguments in the same order as Python.
Here is how I can show it. I create my own module myLinear that prints its name during initialization.

struct _myLinear : torch::nn::Module
    torch::nn::Linear  m_linear  { nullptr };
    _myLinear (const char *name, int size)
        m_linear = register_module( name, torch::nn::Linear( size, size ) );
        std::cout << name << std::endl;

    torch::Tensor forward (torch::Tensor x) { return m_linear( x ); }

TORCH_MODULE_IMPL( myLinear, _myLinear );

Now, if I create my sequential module

auto seq = torch::nn::Sequential(
                      myLinear( "l1", 10 ),
                      myLinear( "l2", 10 ) );

It will print


This clearly shows the arguments are evaluated from right to left !!!
If we don’t know this, it could be a hidden source of bugs.
Also, in my case, it is a problem to validate my C++ code, trying to get the same result as in Python.

To solve this, I now initialize the sequential modules with push_back

auto seq = torch::nn::Sequential();
seq->push_back( myLinear( "l1", 10 ) );
seq->push_back( myLinear( "l2", 10 ) );

This should be clearly written in some libtorch documentation. Or is it and I did not find it?