аддон для NodeJS. Большинство функций и методов это библиотеки кидают lib::runtime_exception и если я их явно не буду ловить и оборачивать в Napi::Error, то в JS  ошибка не пробрасывается и программа крашится. Получается дофига конструкция типа:
                  
                  
                  try {
                  
                  
                    lib::doSmthOrFail();
                  
                  
                  } catch (const lib::runtime_exception& err){
                  
                  
                    throw Napi::Error::New(env, err.what());
                  
                  
                  }
                  
                  
                  Как это всё красиво оборачивать без повторяющегося кода и макросов?
                  
                  
                  Я думал сделать темплейтную функцию, в которую я передаю обьекты, указатели на методы и параметры а она их вызывает и оборачивает ошибки.
                  
                  
                  Но часто изза того что в библиотеке методы имеют перегрузки приходится делать огромные тайпдефы
                  
                  
                  using FooMethod = void (lib::cls::*)(const std::string&, lib::cls::id_type, lib::cls::id_type);
                  
                  
                  const FooMethod{&lib::cls::foo};
                  
                  
                
Только страдать...
Лямбды передавац
Макрос подходит
Обсуждают сегодня