I am getting confusing behaviour with some complex type aliases while using Cxx.jl and I was hoping someone could point out what is going on.
These are the aliases: typealias CppAWSErrorType{C, I<:Integer} CppTemplate{CppBaseType{Symbol( "Aws::Client::AWSError")}, Tuple{CppEnum{C, I}}} typealias CppAWSError{C, I<:Integer, Q} CppRef{CppAWSErrorType{C, I}, Q} ... aws_raw_error = @cxx list_buckets_outcome->GetError() thetype = AWSCxx.CppAWSError{Symbol("Aws::S3::S3Errors"), Int32, (false, false, false)} @test typeof(aws_raw_error) <: thetype # success @test typeof(aws_raw_error) == thetype # success @test isa(aws_raw_error, thetype) # success @test typeof(aws_raw_error) <: AWSCxx.CppAWSError # failure @test isa(aws_raw_error, AWSCxx.CppAWSError) # failure Can anyone help?