去除所有访问级别

This commit is contained in:
2026-08-07 17:50:04 +08:00
parent 0c7fac70b2
commit 3205dd84e8
17 changed files with 2086 additions and 2424 deletions
+6 -6
View File
@@ -1,7 +1,7 @@
#include <structive/property/extensions/presentation.hpp>
#include <cstdio>
#include <type_traits>
#include <cstdlib>
#include <type_traits>
using namespace structive;
#define REQUIRE(expression) do { if (!(expression)) { std::fprintf(stderr, "REQUIRE failed: %s:%d: %s\n", __FILE__, __LINE__, #expression); std::abort(); } } while (false)
struct Device : Property_Object<Device> {
@@ -12,9 +12,9 @@ template <>
struct structive::Type_Descriptor<Device> {
static auto get() {
return object<Device>(
defaults(external_access<External_Access::read>, presentation::group < "Environment" >),
field < &Device::temperature > (key < "temperature" >, presentation::label < "Temperature" >, presentation::order < 2 >),
field < &Device::pressure > (key < "pressure" >)
defaults(presentation::group<"Environment">),
field<&Device::temperature>(key<"temperature">, presentation::label<"Temperature">, presentation::order<2>),
field<&Device::pressure>(key<"pressure">)
);
}
};
@@ -22,8 +22,8 @@ int main() {
Device device;
const auto& temperature = device.schema().property<&Device::temperature>();
static_assert(std::remove_cvref_t<decltype(temperature)>::template has_attribute<presentation::Label_Category>);
auto temperature_info = presentation::describe < &Device::temperature > (device.schema());
auto pressure_info = presentation::describe < &Device::pressure > (device.schema());
auto temperature_info = presentation::describe<&Device::temperature>(device.schema());
auto pressure_info = presentation::describe<&Device::pressure>(device.schema());
REQUIRE(temperature_info.label == "Temperature");
REQUIRE(temperature_info.order == 2);
REQUIRE(temperature_info.has_order);