Event Handler and multiplatform OS functionality
User creates and sets the instance of OS manually.
iOS example
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
#include "iOS.h"
std::shared_ptr OS::instance;
int main(int argc, char * argv[]) { @autoreleasepool { OS::setInstance(std::shared_ptr (new iOS)); return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } }