5#include <unordered_map> 
   34#define STRINGIFY_NS(ns) #ns 
   35#define PAPPSO_REGISTER_JS_CLASS(NS_IDENT, CLASS_NAME)                                     \ 
   36  struct JsRegHelper_##CLASS_NAME                                                          \ 
   38    JsRegHelper_##CLASS_NAME()                                                             \ 
   40      pappso::getNameSpaceClassNameJsConstructorRegistrarMap().insert(                     \ 
   41        {{QStringLiteral(STRINGIFY_NS(NS_IDENT)), QStringLiteral(#CLASS_NAME)},            \ 
   42         [](QJSEngine *engine) { NS_IDENT::CLASS_NAME::registerJsConstructor(engine); }}); \ 
   45  static JsRegHelper_##CLASS_NAME jsRegHelperInstance_##CLASS_NAME; 
 
   59    return qHash(key.first) ^ (qHash(key.second) << 1);
 
 
 
   70    return a.first == 
b.first && 
a.second == 
b.second;
 
 
 
   76                                  NamespaceClassnameAsKeyHash,
 
   77                                  AreNamespaceClassnamePairsEqual> &
 
   81  const QString &name_space, 
const QString &class_name, QJSEngine *engine);
 
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
 
void registerJsConstructorForNameSpaceClassNameInRegistrarMap(const QString &name_space, const QString &class_name, QJSEngine *engine)
 
std::function< void(QJSEngine *)> RegisterFunc
 
void registerJsConstructorForEachClassInRegistrarMap(QJSEngine *engine)
 
std::unordered_map< NamespaceClassnamePairAsKey, RegisterFunc, NamespaceClassnameAsKeyHash, AreNamespaceClassnamePairsEqual > & getNameSpaceClassNameJsConstructorRegistrarMap()
 
std::pair< QString, QString > NamespaceClassnamePairAsKey
 
bool operator()(const NamespaceClassnamePairAsKey &a, const NamespaceClassnamePairAsKey &b) const noexcept
 
std::size_t operator()(const NamespaceClassnamePairAsKey &key) const noexcept