You can probably get the mangled name of the metatype, and refer to that. Eg,
public func f() -> Any.Type { return Int.self } f() Compile this with -emit-ir: @_TMSi = external global %swift.type, align 8 define %swift.type* @_TF4blah1fFT_PMP_() #0 { entry: ret %swift.type* @_TMSi } So in your C++ program, extern "C" { extern void *_TMSi; } Note that this is completely unsupported, and probably insane. You have been warned. Slava > On Dec 18, 2015, at 12:14 PM, Rafkind, Jon via swift-dev > <swift-dev@swift.org> wrote: > > Sorry I should have been more specific. I am working at the C++ level. I have > a swift::MetaType* and want to compare it to something. > > On 12/18/2015 12:10 PM, Dave Abrahams wrote: > > > > > On Dec 18, 2015, at 11:16 AM, Rafkind, Jon via swift-dev > <swift-dev@swift.org><mailto:swift-dev@swift.org> wrote: > > Given a swift::MetaType how can I tell if it corresponds to the MetaType of > the standard Int type? Is there a way to get a reference to the MetaType from > the StdlibModule or TheBuiltinModule? > > For now I can convert the MetaType to a string and compare it to "Int.Type" > but that is yucky. > > > > Equality comparison works: > > (swift) String.self == Int.self > // r2 : Bool = false > (swift) Int.self == Int.self > // r3 : Bool = true > > > > > > -- > _______________________________________________ > swift-dev mailing list > swift-dev@swift.org<mailto:swift-dev@swift.org> > https://lists.swift.org/mailman/listinfo/swift-dev > > > > -Dave > > > > > > > -- > _______________________________________________ > swift-dev mailing list > swift-dev@swift.org > https://lists.swift.org/mailman/listinfo/swift-dev _______________________________________________ swift-dev mailing list swift-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-dev