You can access leaf types (numeric scalars or arrays) using Node's as_{type} methods.
../../tests/docs/t_conduit_docs_tutorial_numeric.cpp
t_conduit_docs_tutorial_numeric_out.txt
Or you can use Node::value(), which can infer the correct return type via a cast.
../../tests/docs/t_conduit_docs_tutorial_numeric.cpp
t_conduit_docs_tutorial_numeric_out.txt
Accessing array data via pointers works the same way, using Node's as_{type} methods.
../../tests/docs/t_conduit_docs_tutorial_numeric.cpp
t_conduit_docs_tutorial_numeric_out.txt
Or using Node::value():
../../tests/docs/t_conduit_docs_tutorial_numeric.cpp
t_conduit_docs_tutorial_numeric_out.txt
For non-contiguous arrays, direct pointer access is complex due to the indexing required. Conduit provides a simple DataArray class that handles per-element indexing for all types of arrays.
../../tests/docs/t_conduit_docs_tutorial_numeric.cpp
t_conduit_docs_tutorial_numeric_out.txt
When C++11 support is enabled you can set Node values using initializer lists with numeric literals.
../../tests/docs/t_conduit_docs_tutorial_numeric.cpp
t_conduit_docs_tutorial_numeric_out.txt
In this example, we have an array in a node that we are interested in processing using an existing function that only handles doubles. We ensure the node is compatible with the function, or transform it to a contiguous double array.
../../tests/docs/t_conduit_docs_tutorial_numeric.cpp
t_conduit_docs_tutorial_numeric_out.txt