C++ API: Best way to cast to standard float

I understand the C++ API is in beta so the documentation is sparse, but I am curious what the best way to cast from a tensor to/from a standard C type is?

What I have currently is:

To tensor:

#define N_FEATURES 2

...

    float x[N_FEATURES] = {5, 4};
    std::vector<torch::jit::IValue> inputs;
    auto ones = torch::ones({1, N_FEATURES});
    for (int i = 0; i < N_FEATURES; i++) {
        ones[0][i] = x[i];
    }
    inputs.push_back(ones);

Then, for output:

     // output is [1, 1] vector
     auto output = module->forward(inputs).toTensor();
     float y = *(float*)(output[0][0].data_ptr());

These seem a bit ugly so I was wondering what the standard way is? I’ve looked through some of the Tensor.h template functions like .data() but couldn’t get it working. data_ptr() seems to work fine though.

Cheers,
Miles