https://gist.github.com/liliilli/42cfa5d6a39390979a713aa4b56d4f49


템플릿 떡칠 X (SFINAE 는 씀)

익셉션 받아서 넘기느니 하는 복잡한 기능은 다 버림

에러코드 동작 방식은 std::error_code 랑 비슷하지만, 다 noexcept 으로 때린걸로 새로 만듦

void 형의 TResult 는 24Bytes.

실제로 잘 동작하진 몰겠는데 일단은 std::string 넣은 타입은 잘 동작함.


그냥 C같은 에러 핸들링 방식 (리턴 값은 인자로 넣고, 에러는 int 로 해서 리턴) 보다는 릴리즈 2배, 디버그 3배 느림.

근데 boost::outcome 의 빠른 방식인 outcome::result 의 경우엔 C 스타일이랑 비교하면 6배 느리니까 비교적 빠른건 맞음.

(outcome::outcome 의 경우엔 outcome::result 보다 2~3배 더 느려서 안쓰는게 나음)

(try/catch exception 의 경우엔 C스타일보다 121배 느림)


일단 boost 다 들어내고 요걸로 대체할 예정.