83f693de53
Add a total-order shim header.
...
Mathematical purism.
2023-10-10 02:24:18 -04:00
bb53f18dfd
This is just the rudiments of a more comprehensive function_traits design.
...
It's good for many common cases, but it should handle member functions and
discriminate between `std::function` objects and builtins. It's mostly
just boilerplate to do that.
2023-10-10 02:23:22 -04:00
ac4346f979
My common fat arrow evaluation helpers.
2023-10-10 02:23:12 -04:00
2258a4ac5c
A simple error-pathway for console output.
...
Reassignable and prevents tearing.
2023-10-10 02:22:41 -04:00
106b0d49cc
Import my EnhancedEnum prototype from enceladus-scratch.
2023-10-10 02:22:13 -04:00
ed3d64e1df
A console driver from my ISO scratch work.
2023-10-09 20:36:44 -04:00
3610746a63
A bunch of handy metafunctions from my ISO scratch work.
...
This has to be put into the hierarchy right, but that can come later.
2023-10-09 20:34:55 -04:00
f5fa12533a
A parser-generator for tuples from my ISO fun scratch projects.
2023-10-09 20:34:24 -04:00
ae53cff323
Program options parser from my scratch projects.
2023-10-09 20:34:10 -04:00
d75b5288c6
Bring in concepts from my scratch projects.
2023-10-09 20:33:56 -04:00
273b9eb8b5
Bring in type-lisp from my scratch projects.
2023-10-09 20:33:35 -04:00
df489cdb97
A family of data buffer objects.
...
Many helpful operations on these, for raw data manipulation.
2023-10-09 19:55:37 -04:00
167de83b3b
Some string algorithms also from my scrach environment.
...
The most useful one is the variable expansion code.
2023-10-09 18:52:54 -04:00
103707367c
Word wrapping implementation.
...
This was in my scratch notes. I have to get it building again.
2023-10-09 18:51:56 -04:00
233f220779
A static value helper.
...
Good for when you want to have something magic statics, but you don't
want to pay the atomic overhead on each access.
2023-10-09 18:24:58 -04:00
187acda4a2
Just use boost as the namespace from within Alepha.
...
If it's been remapped, it's fine, since no code should really exist
outside of `Alepha` namespace here, anyhow.
2023-10-09 18:10:44 -04:00
aacd87f4af
Add a ConstexprString implementation from my notes.
2023-10-09 18:10:25 -04:00
6e7e2630d9
Git ignore...
2023-02-10 13:22:54 -08:00
4229b0bd8a
Add out of range exception classes to Alepha.
2023-02-10 13:15:30 -08:00
fe66d726be
Clean up and regularize the prologue of files.
...
Mark them for C++20, remove the old module-faking hacks, etc.
2023-02-10 08:58:29 -08:00
49d53fecb6
Updated some things to C++20 headers.
...
Lots more to do...
2023-02-09 22:01:19 -08:00
fd6060be17
Bring in the mockination work and Truss from old.
...
It's all a mess -- not in the new unified form and namespace.
I need to do a big cleanup pass.
2023-02-09 21:30:38 -08:00
306d2145a3
Add the attestation work.
2023-02-09 21:10:08 -08:00
4affb80931
Merge remote-tracking branch 'side-line/master'
2023-02-09 20:51:09 -08:00
96e4e3ee30
Add boost license file.
2023-02-09 20:43:02 -08:00
5a8faf189d
Allocation base not needed for normal exceptions
2023-02-09 20:29:27 -08:00
541ef6ced8
A few metaprogramming tools.
2023-02-04 17:46:13 -05:00
9ccfb1dd7a
Add dep_value helper.
2023-02-04 17:40:23 -05:00
9a944f593b
Fix comment in reflection.
2022-11-08 13:04:42 -05:00
b1d83a4bf0
Add a thread primitive which has support for notifications.
...
Now you can send an `Alepha::Notification` into a thread as an
interrupt. You have to use the Alepha threading primitives.
2022-10-17 22:53:45 -04:00
0a1ecce9ec
Permit user-specification of the real namespace of boost.
...
This way `Alepha` can be used in a binary-only library project which
uses boost or a codebase which mangles boost.
2022-10-17 22:53:45 -04:00
72b316d0e2
Flesh out more automatic exception class generation.
...
Also improved the tests.
2022-10-17 22:49:49 -04:00
d5684b8d51
Boolean tests have to actually run.
...
This just checked that they exist, not that they passed.
2022-10-17 18:23:34 -04:00
5c1d821bc2
Moving towards type-linked exception storage.
2022-10-16 11:36:09 -04:00
8a75be721e
First draft of more streamlined tagged Exceptions.
2022-10-16 01:52:16 -04:00
e170f3f172
Boolean test lambdas can now be used properly.
2022-10-16 01:36:13 -04:00
deeb27cb9f
Fix building with pair_decay and tuple_decay.
2022-10-15 16:40:55 -04:00
e62a28de95
A successful experiment with type codes!
...
I've used `constexpr` semantics on `__PRETTY_FUNCTION__` along
with a simple compiletime hash function to create a way to represent
types as NTTP values and then rehydrate them.
This should let me rewrite a lot of things more simply. We can
now have arrays of regular values which can be representative
codes for types.
2021-12-03 06:38:53 -05:00
7de08953c8
Beginnings of support for default_lens.
...
The `default_lens` would be used for anything and everything.
And `tuplizeAggregate` can then be used to make a defaulted
`default_lens`. This simplifies most lens oriented code, as
I move forward.
2021-12-03 01:47:44 -05:00
5f15b0ee38
Document that I'm punting on the aggregate inspection.
2021-10-28 03:41:49 -04:00
3f5b5f692e
Fix the off-by-one computation for empty bases.
...
Instead of counting as we go, just build it, and then count.
2021-10-28 03:34:02 -04:00
bdd222c4d5
Document the aggregate analysis algorithm.
...
(I still don't actually deal with the weird case of bases also
being members... but that's fairly rare.)
2021-10-28 03:32:18 -04:00
439fbb1433
StaticValue helper.
...
Incorporated into `Testing`, for now. Semi-threadsafe statics,
initialize them before going multithreaded.
2021-10-26 05:10:40 -04:00
7b7e8a1b67
Partially on the way to complete 17 reflection.
...
I can't figure out why my computation on empty bases is 1 higher
than it should be -- so I'm punting, for now. I'll revisit it
when I have more time.
2021-10-26 05:04:25 -04:00
304640d76b
Experiment with constexpr traits in enable_if.
...
So the `constexpr` traits do not really look better here. But
they may be better for writing linear code in complex trait
processing, as opposed to complicated recursive code. Still
to be determined. However, If I stay with this and if
`std::find_if` and friends are `constexpr`, then the `Mata`
algorithms can be removed, and `std::` forms will just work.
That's a nice bonus.
Otherwise, we need something more like `boost::mpl`, which is
kinda annoying. Still, `Meta::Container::vector` is very
nice -- it side-steps some issues with using `std::tuple` as
a type-list.
2021-10-26 02:05:57 -04:00
70a23059b0
Make comparisons constexpr.
...
The generated operators should be `constexpr`. The `ordering_magma`
code should be as well.
2021-10-26 02:04:22 -04:00
cf3f77ba6e
Well this whole () base TMP experiment kinda works.
...
It's a lot of heavy lifting. I'm not sure it actually
adds any useful value yet, but I'll continue to play
with it. It is nice that we can *sometimes* use
loops. Sometimes we can't though. And we have
to make some blind-corner evaluations that throw
dummy failures to keep the compiler from complaining
about missing cases -- despite the fact that they;ll
never be reached at compiletime. (Runtime evaluation
could be different, of course.)
I think, perhaps, a universal representation of a
dereferenced iterator might solve some of this, but
I also don't want to sink too much effort into this,
despite how much fun I'm having.
2021-10-26 01:53:47 -04:00
e3d7bbe616
Comparison test builds again.
...
Now to extend the functionalization.
2021-10-25 02:08:12 -04:00
f2ae99f648
I added the lens-based comparison code.
...
The metaprogramming is still based upon the angle-bracket
type-form. Now to rewrite it in terms of the constexpr systems.
2021-10-25 02:02:12 -04:00
3c11d6af74
Move the colours stuff out of Testing and into console.
2021-10-25 02:01:07 -04:00