@@ -15,7 +15,7 @@ Boost Software License 1.0
1515* [ Other libraries] ( #other )
1616* [ Presentations] ( #presentations )
1717
18- # <A name =" intro " / >Intro
18+ # <A name =" intro " ></ A >Intro
1919
2020Very much inspired by [ @foonathan 's] ( https://twitter.com/foonathan )
2121[ ` type_safe ` ] ( https://github.com/foonathan/type_safe ) library, but aim is
@@ -71,7 +71,7 @@ the underlying type can be, for compilers and standards that support it.
7171*strong_type* uses the std library module, with `import std;` if you
7272define the macro `STRONG_TYPE_IMPORT_STD_LIBRARY=1`.
7373
74- # <A name="modifiers"/> Modifiers:
74+ # <A name="modifiers"></A> Modifiers:
7575
7676* <A name="affine_point"></A>`strong::affine_point<D>` allows instances to be
7777 subtracted (yielding a `D`) or to add or subtract a `D` to an instance.
@@ -251,31 +251,31 @@ define the macro `STRONG_TYPE_IMPORT_STD_LIBRARY=1`.
251251 Available in `strong_type/ordered.hpp`
252252
253253
254- * <A name="ordered_with"/ >`strong::ordered_with<Ts...>` provides operators `<`,
254+ * <A name="ordered_with"></A >`strong::ordered_with<Ts...>` provides operators `<`,
255255 `<=`, `>=` and `>` between the strong type and each of the types `Ts...`.
256256 Note! While `Ts` can include other strong types, it cannot refer to the strong
257257 type being defined. Use [`strong::ordered`](#ordered) for that.
258258
259259 Available in `strong_type/ordered_with.hpp`
260260
261261
262- * <A name="ostreamable"/ >`strong::ostreamable`. Provides the default
262+ * <A name="ostreamable"></A >`strong::ostreamable`. Provides the default
263263 [`ostream`](https://en.cppreference.com/w/cpp/io/basic_ostream) insertion
264264 `operator<<` for the strong type, as handled by the underlying type. Provide
265265 your own operator instead if you prefer a custom ostream insertion operator.
266266
267267 Available in `strong_type/ostreamable.hpp`
268268
269269
270- * <A name="partially_ordered"/ >`strong::partially_ordered` provides operator
270+ * <A name="partially_ordered"></A >`strong::partially_ordered` provides operator
271271 `<=>` The strong type offers the same ordering relation as the underlying type.
272272 The result is [`std::partial_ordering`](https://en.cppreference.com/w/cpp/utility/compare/partial_ordering).
273273 Note! This does not imply [´strong::equality´](#equality).
274274
275275 Available in `strong_type/ordered.hpp`
276276
277277
278- * <A name="partially_ordered_with"/ >`strong::partially_ordered_with<Ts...>`
278+ * <A name="partially_ordered_with"></A >`strong::partially_ordered_with<Ts...>`
279279 provides operator `<=>` between the strong type and each of the types `Ts...`.
280280 Note! While `Ts` can include other strong types, it cannot refer to the strong
281281 type being defined. Use [`strong::partially_ordered`](#partially_ordered) for
@@ -285,13 +285,13 @@ define the macro `STRONG_TYPE_IMPORT_STD_LIBRARY=1`.
285285 Available in `strong_type/ordered_with.hpp`
286286
287287
288- * <A name="pointer"/ >`strong::pointer` allows `operator*` and `operator->`, and
288+ * <A name="pointer"></A >`strong::pointer` allows `operator*` and `operator->`, and
289289 comparisons with `nullptr` providing the underlying type supports it.
290290
291291 Available in `strong_type/pointer.hpp`
292292
293293
294- * <A name="range"/ >`strong::range` adds the functionality needed to iterate over
294+ * <A name="range"></A >`strong::range` adds the functionality needed to iterate over
295295 the elements. The [iterator types](#iterator) are using the same tag as using
296296 in the range. Only implements types `iterator` and `const_iterator`, and thus
297297 `.begin()`, `.end()`, `.cbegin()`, `.cend()`, `.begin() const` and
@@ -301,37 +301,37 @@ define the macro `STRONG_TYPE_IMPORT_STD_LIBRARY=1`.
301301 Available in `strong_type/range.hpp`
302302
303303
304- * <A name="regular"/ >`strong::regular`. Same as [`strong::semiregular`](#semiregular)
304+ * <A name="regular"></A >`strong::regular`. Same as [`strong::semiregular`](#semiregular)
305305 and [`strong::equality`](#equality). A good default base for most types.
306306
307307 Available in `strong_type/regular.hpp`
308308
309309
310- * <A name="scalable_with"/ >`strong::scalable_with<Ts...>` Allows multiplying and
310+ * <A name="scalable_with"></A >`strong::scalable_with<Ts...>` Allows multiplying and
311311 dividing the value with each type `Ts`, providing the underlying type supports
312312 it. It also allows dividing instances of `scalable_with<>`, if the underlying
313313 type supports it, and returns the first type in the list of `Ts...`.
314314
315315 Available in `strong_type/scalable_with.hpp`
316316
317317
318- * <A name="semiregular"/ >`strong::semiregular`. This gives you
318+ * <A name="semiregular"></A >`strong::semiregular`. This gives you
319319 [`strong::default_constructible`](#default_constructible)
320320 move/copy constructible, move/copy assignable and swappable.
321321 A decent default for many types.
322322
323323 Available in `strong_type/semiregular.hpp`.
324324
325325
326- * <A name="strongly_ordered"/ >`strong::strongly_ordered` provides operator `<=>`
326+ * <A name="strongly_ordered"></A >`strong::strongly_ordered` provides operator `<=>`
327327 The strong type offers the same ordering relatin as the underlying type. The
328328 result is [`std::strong_ordering`](https://en.cppreference.com/w/cpp/utility/compare/strong_ordering).
329329 Note! This does not imply [´strong::equality<Ts...>´](#equality).
330330
331331 Available in `strong_type/ordered.hpp`
332332
333333
334- * <A name="strongly_ordered_with"/ >`strong::strongly_ordered_with<Ts...>`
334+ * <A name="strongly_ordered_with"></A >`strong::strongly_ordered_with<Ts...>`
335335 provides operator `<=>` between the strong type and each of the types `Ts...`.
336336 Note! While `Ts` can include other strong types, it cannot refer to the strong
337337 type being defined. Use [`strong::strongly_ordered`](#strongly_ordered) for
@@ -341,20 +341,20 @@ define the macro `STRONG_TYPE_IMPORT_STD_LIBRARY=1`.
341341 Available in `strong_type/ordered_with.hpp`
342342
343343
344- * <A name="unique"/ >`strong::unique`. Make the type move constructible and move
344+ * <A name="unique"></A >`strong::unique`. Make the type move constructible and move
345345 assignable but not copy constructible nor copy assignable.
346346
347347 Available in `strong_type/unique.hpp`
348348
349- * <A name="weakly_ordered"/ >`strong::weakly_ordered` provides operator `<=>`
349+ * <A name="weakly_ordered"></A >`strong::weakly_ordered` provides operator `<=>`
350350 The strong type offers the same ordering relatin as the underlying type. The
351351 result is [`std::weak_ordering`](https://en.cppreference.com/w/cpp/utility/compare/weak_ordering).
352352 Note! This does not imply [´strong::equality´](#equality).
353353
354354 Available in `strong_type/ordered.hpp`
355355
356356
357- * <A name="weakly_ordered_with"/ >`strong::weakly_ordered_with<Ts...>` provides
357+ * <A name="weakly_ordered_with"></A >`strong::weakly_ordered_with<Ts...>` provides
358358 operator `<=>` between the strong type and each of the types `Ts...`.
359359 Note! While `Ts` can include other strong types, it cannot refer to the strong
360360 type being defined. Use [`strong::weakly_ordered`](#weakly_ordered) for
@@ -365,7 +365,7 @@ define the macro `STRONG_TYPE_IMPORT_STD_LIBRARY=1`.
365365
366366
367367
368- # <A name="utilities"/> Utilities:
368+ # <A name="utilities"></A> Utilities:
369369
370370A number of small utilities are available directly in `strong_type/type.hpp`.
371371
@@ -415,7 +415,7 @@ A number of small utilities are available directly in `strong_type/type.hpp`.
415415
416416 All `static_assert`s above pass.
417417
418- # <A name="writing_modifier"/ >Writing a modifier
418+ # <A name="writing_modifier"></A >Writing a modifier
419419
420420A modifier is a nested structure. The outer type, a struct or class, is what
421421the user sees. Inside it is a struct/class template that is a
@@ -677,7 +677,7 @@ struct optional
677677};
678678```
679679
680- # <A name =" selftest " /> Self test
680+ # <A name =" selftest " ></ A > Self test
681681
682682To build the self-test program(s):
683683
@@ -697,15 +697,15 @@ The build will produce the test programs `self_test`, and conditionally also
697697N.B. Microsoft Visual Studio MSVC compiler < 19.22 does not handle ` constexpr `
698698correctly. Those found to cause trouble are disabled for those versions.
699699
700- ## <A name =" other " /> Other libraries:
700+ ## <A name =" other " ></ A > Other libraries:
701701
702702| Library | Author |
703703| -----------------------------------------------------| -------------------|
704704| [ type_safe] ( https://github.com/foonathan/type_safe ) | Jonathan Müller |
705705| [ NamedType] ( https://github.com/joboccara/NamedType ) | Jonathan Boccara |
706706| [ strong_typedef] ( https://github.com/anthonywilliams/strong_typedef ) | Anthony Williams (justsoftwaresolutions) |
707707
708- ## <A name =" presentations " /> Presentations about defining and using strong types
708+ ## <A name =" presentations " ></ A > Presentations about defining and using strong types
709709
710710| | |
711711| ---| ---|
0 commit comments