I have
abstract AbstractGraph{T<:Integer}
type Graph{T}<:AbstractGraph{T}
vertices::UnitRange{T}
edges::Set{Edge{T}}
finclist::Vector{Vector{Edge{T}}} # [src]: ((src,dst), (src,dst),
(src,dst))
binclist::Vector{Vector{Edge{T}}} # [dst]: ((src,dst), (src,dst),
(src,dst))
end
function Graph{T<:Integer}(n::T)
and g = Graph(5) works and produces a graph of type Graph{Int64}, but g =
Graph{Int64}(5) produces
ERROR: MethodError: `convert` has no method matching
convert(::Type{LightGraphs.Graph{Int64}}, ::Int64)
This is a problem because I have
function union{T<:AbstractGraph}(g::T, h::T)
gnv = nv(g)
r = T(gnv + nv(h))
for e in edges(g)
add_edge!(r,e)
end
for e in edges(h)
add_edge!(r, gnv+src(e), gnv+dst(e))
end
return r
end
Which is failing on line 3 (in the creation of the graph).
What's the proper way of creating the object from a parameterized type?
Thanks.