12#ifndef ARCANE_UTILS_PROPERTYDECLARATIONS_H
13#define ARCANE_UTILS_PROPERTYDECLARATIONS_H
22#include "arcane/utils/String.h"
32namespace Arcane::properties
38class IPropertyVisitor;
42class GenericPropertyVisitorWrapper;
64#define ARCANE_DECLARE_PROPERTY_CLASS(class_name)\
66 static const char* propertyClassName() { return #class_name; }\
67 template<typename V> static void _applyPropertyVisitor(V& visitor);\
68 static void applyPropertyVisitor(Arcane::properties::PropertyVisitor<class_name>& p); \
69 static void applyPropertyVisitor(Arcane::properties::IPropertyVisitor* p)
96#define ARCANE_REGISTER_PROPERTY_CLASS(aclass,a_build_args) \
99 Arcane::properties::IPropertySettingsInfo* \
100 ARCANE_JOIN_WITH_LINE(arcaneCreatePropertySettingsInfo##aclass) (const Arcane::properties::PropertySettingsBuildInfo& sbi) \
102 auto* si = Arcane::properties::PropertySettingsInfo<aclass>::create(sbi,__FILE__,__LINE__); \
105 Arcane::properties::PropertySettingsBuildInfo \
106 ARCANE_JOIN_WITH_LINE(arcaneCreatePropertySettingsBuildInfo##aclass) () \
108 return Arcane::properties::PropertySettingsBuildInfo a_build_args;\
112applyPropertyVisitor(Arcane::properties::PropertyVisitor<aclass>& p)\
114 aclass :: _applyPropertyVisitor(p);\
117applyPropertyVisitor(Arcane::properties::IPropertyVisitor* p) \
119 Arcane::properties::GenericPropertyVisitorWrapper<aclass> xp(p);\
120 aclass :: _applyPropertyVisitor(xp); \
122Arcane::properties::PropertySettingsRegisterer ARCANE_EXPORT \
123 ARCANE_JOIN_WITH_LINE(globalPropertySettingsRegisterer##aclass)\
124 (& ARCANE_JOIN_WITH_LINE(arcaneCreatePropertySettingsInfo##aclass),\
125 & ARCANE_JOIN_WITH_LINE(arcaneCreatePropertySettingsBuildInfo##aclass),\
Déclarations des types utilisés dans Arcane.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-