Thanks very much!! That's exactly what I need.

On Monday, June 13, 2016 at 10:19:44 PM UTC+1, Kristoffer Carlsson wrote:
>
> Perhaps:
>
> type RealorComplex{T1 <: Number, T2<:Real}
>     v::Vector{T1}
>     w::Vector{Complex{T2}}
>     function RealorComplex(v, w)
>     @assert T1 <: AbstractFloat || T1 <: Complex
>     new(v, w)
>     end
> end
>
> RealorComplex{T1,T2}(v::Vector{T1}, w::Vector{Complex{T2}}) = 
> RealorComplex{T1, T2}(v, w)
>
>
>
> On Monday, June 13, 2016 at 9:31:06 PM UTC+2, Kuan Xu wrote:
>>
>>
>>
>> I'm trying to define a type which has two fields, the first of which can 
>> be either real or complex and the second is always complex. 
>>
>> type RealorComplex{T<:Number}
>>     v::Vector{T}
>>     w::Vector{Complex{T}}
>> end
>>
>> r = RealorComplex([1.0, 2.0], [1.0+1.0im, 2.0])
>> t = RealorComplex([1.0+1.0im, 2.0], [1.0+1.0im, 2.0])
>>
>> The construction of r is totally fine but not that of t, since mismatch 
>> of the type. What is the best way to fix my ctor so that it can take either 
>> type of first argument . 
>>
>> Hope I have made my question clear. Thanks.
>>
>

Reply via email to