discard """ cmd: "nim cpp $file" """ {.emit: """ namespace System { struct Input {}; } struct SystemManager { template static T* getSubsystem() { return new T; } }; """.} type Input {.importcpp: "System::Input".} = object proc getSubsystem*[T](): ptr T {.importcpp: "SystemManager::getSubsystem<'*0>()".} let input: ptr Input = getSubsystem[Input]()