• Dean Moldovan's avatar
    Support keyword arguments and generalized unpacking in C++ · c743e1b1
    Dean Moldovan authored
    A Python function can be called with the syntax:
    ```python
    foo(a1, a2, *args, ka=1, kb=2, **kwargs)
    ```
    This commit adds support for the equivalent syntax in C++:
    ```c++
    foo(a1, a2, *args, "ka"_a=1, "kb"_a=2, **kwargs)
    ```
    
    In addition, generalized unpacking is implemented, as per PEP 448,
    which allows calls with multiple * and ** unpacking:
    ```python
    bar(*args1, 99, *args2, 101, **kwargs1, kz=200, **kwargs2)
    ```
    and
    ```c++
    bar(*args1, 99, *args2, 101, **kwargs1, "kz"_a=200, **kwargs2)
    ```
    c743e1b1
test_callbacks.cpp 4.82 KB