@@ -39,19 +39,19 @@ namespace Detail {
3939class RFieldVisitor ;
4040} // namespace Detail
4141
42- // / The field for a class representing a collection of elements via ` TVirtualCollectionProxy` .
42+ // / The field for a class representing a collection of elements via TVirtualCollectionProxy.
4343// / Objects of such type behave as collections that can be accessed through the corresponding member functions in
44- // / ` TVirtualCollectionProxy` . For STL collections, these proxies are provided. Custom classes need to implement the
45- // / corresponding member functions in ` TVirtualCollectionProxy` . At a bare minimum, the user is required to provide an
46- // / implementation for the following functions in ` TVirtualCollectionProxy`: ` HasPointers()`, ` GetProperties()` ,
47- // / ` GetValueClass()`, ` GetType()`, ` PushProxy()`, ` PopProxy()`, ` GetFunctionCreateIterators()`, ` GetFunctionNext()` ,
48- // / and ` GetFunctionDeleteTwoIterators()` .
44+ // / TVirtualCollectionProxy. For STL collections, these proxies are provided. Custom classes need to implement the
45+ // / corresponding member functions in TVirtualCollectionProxy. At a bare minimum, the user is required to provide an
46+ // / implementation for the following functions in TVirtualCollectionProxy: HasPointers(), GetProperties(),
47+ // / GetValueClass(), GetType(), PushProxy(), PopProxy(), GetFunctionCreateIterators(), GetFunctionNext(),
48+ // / and GetFunctionDeleteTwoIterators().
4949// /
50- // / The collection proxy for a given class can be set via ` TClass::CopyCollectionProxy()` .
50+ // / The collection proxy for a given class can be set via TClass::CopyCollectionProxy().
5151class RProxiedCollectionField : public RFieldBase {
5252protected:
5353 // / Allows for iterating over the elements of a proxied collection. RCollectionIterableOnce avoids an additional
54- // / iterator copy (see ` TVirtualCollectionProxy::GetFunctionCopyIterator` ) and thus can only be iterated once.
54+ // / iterator copy (see TVirtualCollectionProxy::GetFunctionCopyIterator) and thus can only be iterated once.
5555 class RCollectionIterableOnce {
5656 public:
5757 struct RIteratorFuncs {
@@ -70,7 +70,7 @@ protected:
7070 void Advance ()
7171 {
7272 auto fnNext_Contig = [&]() {
73- // Array-backed collections (e.g. kSTLvector) directly use the pointer-to-iterator-data as a
73+ // Array-backed collections (e.g. ` kSTLvector` ) directly use the pointer-to-iterator-data as a
7474 // pointer-to-element, thus saving an indirection level (see documentation for TVirtualCollectionProxy)
7575 auto &iter = reinterpret_cast <unsigned char *&>(fIterator ), p = iter;
7676 iter += fOwner .fStride ;
@@ -105,7 +105,7 @@ protected:
105105 void *fEnd = &fEndSmallBuf ;
106106
107107 public:
108- // / Construct a ` RCollectionIterableOnce` that iterates over `collection`. If elements are guaranteed to be
108+ // / Construct a RCollectionIterableOnce that iterates over `collection`. If elements are guaranteed to be
109109 // / contiguous in memory (e.g. a vector), `stride` can be provided for faster iteration, i.e. the address of each
110110 // / element is known given the base pointer.
111111 RCollectionIterableOnce (void *collection, const RIteratorFuncs &ifuncs, TVirtualCollectionProxy *proxy,
@@ -152,7 +152,7 @@ protected:
152152 // / Constructor used when the value type of the collection is not known in advance, i.e. in the case of custom
153153 // / collections.
154154 RProxiedCollectionField (std::string_view fieldName, TClass *classp);
155- // / Constructor used when the value type of the collection is known in advance, e.g. in ` RSetField` .
155+ // / Constructor used when the value type of the collection is known in advance, e.g. in RSetField.
156156 RProxiedCollectionField (std::string_view fieldName, std::string_view typeName,
157157 std::unique_ptr<RFieldBase> itemField);
158158
@@ -208,7 +208,7 @@ struct HasCollectionProxyMemberType<
208208// / The point here is that we can only tell at run time if a class has an associated collection proxy.
209209// / For compile time, in the first iteration of this PR we had an extra template argument that acted as a "tag" to
210210// / differentiate the RField specialization for classes with an associated collection proxy (inherits
211- // / ` RProxiedCollectionField` ) from the RField primary template definition (` RClassField` -derived), as in:
211+ // / RProxiedCollectionField) from the RField primary template definition (RClassField-derived), as in:
212212// / ```
213213// / auto field = std::make_unique<RField<MyClass>>("klass");
214214// / // vs
@@ -223,7 +223,7 @@ struct HasCollectionProxyMemberType<
223223// / ```
224224// / auto field = std::make_unique<RField<RProxiedCollection<MyClass>>>("klass"); // Using collection proxy
225225// / ```
226- // / - A helper ` IsCollectionProxy<T>` type, that can be used in a similar way to those in the `<type_traits>` header.
226+ // / - A helper IsCollectionProxy<T> type, that can be used in a similar way to those in the `<type_traits>` header.
227227// / We found this more convenient and is the implemented thing below. Here, classes can be marked as a
228228// / collection proxy with either of the following two forms (whichever is more convenient for the user):
229229// / ```
@@ -238,15 +238,15 @@ struct HasCollectionProxyMemberType<
238238// / };
239239// / ```
240240// /
241- // / Of course, there is another possible solution which is to have a single ` RClassField` that implements both
241+ // / Of course, there is another possible solution which is to have a single RClassField that implements both
242242// / the regular-class and the collection-proxy behaviors, and always chooses appropriately at run time.
243243// / We found that less clean and probably has more overhead, as most probably it involves an additional branch + call
244244// / in each of the member functions.
245245template <typename T, typename = void >
246246struct IsCollectionProxy : HasCollectionProxyMemberType<T> {
247247};
248248
249- // / Classes behaving as a collection of elements that can be queried via the ` TVirtualCollectionProxy` interface
249+ // / Classes behaving as a collection of elements that can be queried via the TVirtualCollectionProxy interface
250250// / The use of a collection proxy for a particular class can be enabled via:
251251// / ```
252252// / namespace ROOT::Experimental {
@@ -277,7 +277,7 @@ public:
277277// / Template specializations for C++ std::[unordered_][multi]map
278278// //////////////////////////////////////////////////////////////////////////////
279279
280- // / The generic field for a std::map<KeyType, ValueType> and std::unordered_map<KeyType, ValueType>
280+ // / The generic field for a ` std::map<KeyType, ValueType>` and ` std::unordered_map<KeyType, ValueType>`
281281class RMapField : public RProxiedCollectionField {
282282public:
283283 RMapField (std::string_view fieldName, std::string_view typeName, std::unique_ptr<RFieldBase> itemField);
@@ -358,7 +358,7 @@ public:
358358// / Template specializations for C++ std::[unordered_][multi]set
359359// //////////////////////////////////////////////////////////////////////////////
360360
361- // / The generic field for a std::set<Type> and std::unordered_set<Type>
361+ // / The generic field for a ` std::set<Type>` and ` std::unordered_set<Type>`
362362class RSetField : public RProxiedCollectionField {
363363public:
364364 RSetField (std::string_view fieldName, std::string_view typeName, std::unique_ptr<RFieldBase> itemField);
0 commit comments