Face Engine SDK  5.23.1
A face detection, recognition and tracking engine.
include/fsdk/Types/MultiError.h
00001 #pragma once
00002 
00003 #include <fsdk/Types/Result.h>
00004 
00005 namespace fsdk {
00013     template <typename E0, typename E1>
00014     struct MultiError {
00015         using E0Type = E0;
00016         using E1Type = E1;
00017         E0 m_first;
00018         E1 m_second;
00019     };
00020 
00024     template <typename E0, typename E1>
00025     struct ErrorTraits<MultiError<E0, E1>> {
00026         using ErrorType = MultiError<E0, E1>;
00027         using E0Traits = ErrorTraits<typename ErrorType::E0Type>;
00028         using E1Traits = ErrorTraits<typename ErrorType::E1Type>;
00029 
00030         static bool isOk(ErrorType e) {
00031             return E0Traits::isOk(e.m_first) && E1Traits::isOk(e.m_second);
00032         }
00033 
00034         static const char* toString(ErrorType e) {
00035             if(!E0Traits::isOk(e.m_first))
00036                 return E0Traits::toString(e.m_first);
00037             return E1Traits::toString(e.m_second);
00038         }
00039     };
00040 
00041     template <typename E0, typename E1>
00042     inline Result<MultiError<E0, E1>> makeMultiResult(E0 error0, E1 error1) {
00043         return Result<MultiError<E0, E1>>({error0, error1});
00044     }
00045 } // namespace fsdk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines