Files
doris/be/src/common/expected.h
Jack Drogon 5706bef2b3 [feature](common) Add unexpected/result support (#18312)
* Add unexpected/result support

* Rename result.hpp -> result.h && Add NOLINT in expected.hpp

* Add NOLINT in result.h to avoid clang-tidy checker

* Rename result.h to expected.h

* Add Apache License for be/src/util/expected.hpp

* Disable clang-format in be util/expected.hpp
2023-04-21 17:07:20 +08:00

49 lines
1.5 KiB
C++

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
#pragma once
#ifndef __cplusplus
#error need cpp support
#endif
#if __cplusplus <= 202002L
#include "util/expected.hpp"
namespace doris {
template <typename T, typename E>
using expected = tl::expected<T, E>;
template <typename E>
using unexpected = tl::unexpected<E>;
template <class E>
using bad_expected_access = tl::bad_expected_access<E>;
using unexpect_t = tl::unexpect_t;
using tl::unexpect; // NOLINT
} // namespace doris
#else
#include <expected>
namespace doris {
template <typename T, typename E>
using expected = std::expected<T, E>;
template <typename E>
using unexpected = std::unexpected<E>;
template <class E>
using bad_expected_access = std::bad_expected_access<E>;
using unexpect_t = std::unexpect_t;
using std::unexpect; // NOLINT
} // namespace doris
#endif