About return None in torch.autograd.Function's backward in C++ API(libtorch)?

In python, if I want to realize a custom ops which is extended by autograd.Function, I may code as following. The idx’s grad is not need for updating.

class MyOps(torch.autograd.Function):
    @staticmethod
    def forward(ctx, features: torch.Tensor, idx: torch.Tensor)  -> torch.Tensor:
        # some operations, and output is a Tensor
        ......
        return output
    def backward(ctx, grad_out) :
        # some operations, and idx's grad is not needed for updating.
        ......
        return features_grad, None

In C++ API(libotrch), I code as follwing:

using namespace torch::autograd;

class MyOps : public Function<MyOps> {
    public:
    static torch::Tensor forward(AutogradContext *ctx, torch::Tensor features, torch::Tensor idx) {
        # some operations, and output is a Tensor
        return output;
    }
}

The problem is, I don’t know how to return None and define the return type in backward.
I have read the C++ API and find a value named c10::nullopt. Is that equal to None in Python?
Could anybody give me a backward example?
Thanks.

I think returning a torch::autograd::variable_list object with empty tensors for the None equivalents could work as seen in this example.

Thank you very much!