You mean like so?
julia> ccall(:jl_apply_type, Any, (Any, Any),
unsafe_load(cglobal(:jl_array_type, Any)),
ccall(:jl_tuple2, Any, (Any...),
ccall(:jl_tuple2, Any, (Any...),
Any,
Any),
2))
Array{(Any,Any),2}
which in C syntax would look like so:
jl_value_t *t1, *t2 = NULL, *v2 = NULL;
JL_GC_PUSH3(&t1, &t2, &v2);
t1 = jl_tuple2(jl_any_type, jl_any_type);
v2 = jl_box_long(2);
t2 = jl_tuple2(t1, v2);
jl_datatype_t *ttype = jl_apply_type(jl_array_type, t2);
JL_GC_POP();
On Sun, Oct 19, 2014 at 12:40 AM, Randy Lai <[email protected]> wrote:
> I want to create an array of type Array{(Any, Any), 1}
>
> This is the code that i am
>
> jl_datatype_t *ttype = (jl_datatype_t *) jl_eval_string("(Any, Any)");
> ret = rj_new_array(ttype, jl_tuple1(jl_box_int64(n)));
>
> Of course, it is not elegant enough, since I am using `jl_eval_string`.
> I tried
>
> jl_datatype_t *ttype = (jl_datatype_t *) jl_typeof(jl_alloc_tuple(2));
>
> But it doesn't produce a right result, it gives me `Array{(Any...), 1}`
>
> Any advise?
>