import std;
import mcpplibs.primitives;
using namespace mcpplibs::primitives;
using namespace mcpplibs::primitives::operators;
int main() {
using value_t =
primitive<int, policy::value::checked, policy::error::expected>;
auto const out = value_t{40} + value_t{2};
if (!out.has_value()) {
return 1;
}
return out->value() == 42 ? 0 : 1;
}关键点:算术和运算符接口大多返回 std::expected<...>。
建议起步组合:
policy::value::checkedpolicy::error::expected- 默认
policy::type::strict - 默认
policy::concurrency::none
这组配置通常具备较好的安全性与可诊断性。
建议按以下顺序运行示例:
ex01_basic_usageex02_type_policyex03_value_policyex04_error_policyex05_concurrency_policyex06_conversionex07_algorithmsex08_custom_underlyingex09_custom_policyex10_custom_operation
运行示例:
xmake run ex03_value_policyusing default_i32 = mcpplibs::primitives::primitive<int>;using value_t = mcpplibs::primitives::primitive<
int,
mcpplibs::primitives::policy::type::compatible,
mcpplibs::primitives::policy::error::expected>;
auto const lhs = value_t{40};
short const rhs = 2;
auto const out = mcpplibs::primitives::operations::add(lhs, rhs);using namespace mcpplibs::primitives::operators;如果不引入该命名空间,请使用 mcpplibs::primitives::operations 下的函数式 API。
- 并发用法: ./concurrency.md
- 扩展开发: ./extension.md
- API 参考: ../../api/zh/README.md