mirror of
https://github.com/CHN-beta/nixos.git
synced 2024-10-23 02:58:44 +08:00
30 lines
680 B
C++
30 lines
680 B
C++
# include <biu.hpp>
|
|
|
|
int main()
|
|
{
|
|
using namespace biu::literals;
|
|
struct student
|
|
{
|
|
int number;
|
|
std::string name;
|
|
std::vector<std::optional<double>> grade;
|
|
using serialize = zpp::bits::members<3>;
|
|
auto operator<=>(const student&) const = default;
|
|
};
|
|
student bob{ 123, "Bob", { 3.5, std::nullopt, 4.0 } };
|
|
auto serialized_bob = biu::serialize(bob);
|
|
auto bob2 = biu::deserialize<student>(serialized_bob);
|
|
assert(bob == bob2);
|
|
struct A
|
|
{
|
|
int x;
|
|
std::string y;
|
|
std::complex<double> z;
|
|
};
|
|
A a{ 123, "abc", 3i };
|
|
auto b = biu::deserialize<A>(biu::serialize(a));
|
|
assert(a.x == b.x);
|
|
assert(a.y == b.y);
|
|
assert(a.z == b.z);
|
|
}
|