- 主题:用上std::expected<>了
用的c++20。只能先这么污染一下std,这样以后不用改代码。
#pragma once
#if defined(__cpp_lib_expected) && (__cpp_lib_expected >= 202211L)
#include <expected>
#else
#include <tl/expected.hpp>
#include <type_traits>
#include <utility>
namespace std {
template <typename T, typename E> using expected = tl::expected<T, E>;
template <typename E> using unexpected = tl::unexpected<E>;
template <typename E> auto make_unexpected(E &&e) -> unexpected<std::remove_cvref_t<E>> {
return unexpected<std::remove_cvref_t<E>>(std::forward<E>(e));
}
} // namespace std
#endif
--
FROM 111.199.147.*
没有用,连预编译都没用(某个新手最初搭建项目时没弄,他应该是不懂PCH),哈哈
因为编译时间现在不是大问题。另外就是要切的话,工作量不小,主要是这种优化没有KPI可吹,现阶段跟挣钱没直接的可视关系
【 在 buildtolast 的大作中提到: 】
: 你们使用c++20,用上module了吗?我觉着这个挺有用的,可以渐进地演化,而且风险不大。
:
--
FROM 111.199.147.*
我是“激进派”,c++的标准能用新的就用新的啊。
人生苦短,难道要等退休了再用吗,哈哈
而且MSVC的c++20 feature全都stable好久了
【 在 buildtolast 的大作中提到: 】
: 你们是新的项目吗?怎么选择这么新的编译版本?
:
--
修改:z16166 FROM 111.199.147.*
FROM 111.199.147.*
那个代码很简单的,就是给tl::expected<>起个别名而已
所谓:会者不难,难者不会
【 在 buildtolast 的大作中提到: 】
: 其实我觉着可读性比简练重要得多。写得简练,只不过是少打了几个字,但是那么长的维护时间,可读性不好,会增加许多维护成本,而且考验维护者的水平。即使是自己维护,可能时间久了,也忘记了。
:
--
FROM 111.199.147.*