Robert Ramey
dea5a291b1
Added “inline” to all free standing functions. This is in response to an issue whereby including the same types in a library ends up producing multiple copies of the function. This only shows up when combinations of types are reused. This should fix the problem. BUT I can’t figure out a way to really test it. These changes pass all tests - but there is no “linking” test to show this specific problem.
...
Actually this raises the question about what a “header only” library really is. When it gets included in multiple modules, it looks like the compiler/linker consolidates functions with the same type signature - thus conflicting with most persons idea of what “header only” should actually mean. Food for thought.
It also raises the issue of “head only” libraries and “code bloat”. By making sure everything is inline we are contributing to code bloat. This really should/could be addressed with making “inline” INLINE and defining it according to what kind output we want to produce (ie. executable, static library, shared library, etc.). But of course that changes the API - another can of worms.
2020-12-15 11:04:31 -08:00
Robert Ramey
cbb4197a17
cleaned up definitions for constructors and casting operators
...
passes all tests and examples.
minor documentation fixes
2020-11-07 07:09:37 -08:00
Robert Ramey
4a7acbf040
recent changes provoked error in example93. Very interesting as this example was used as a “provably” correct stepper motor implementation in CPPCon 2018. Fixing this led to some changes in casting of checked numbers. Currently passing all tests/examples on my machine.
2019-12-13 16:40:57 -08:00
Robert Ramey
dec518c4a9
Fixed Exception Policies for trap and ignore.
2019-02-24 09:54:13 -08:00
Robert Ramey
a06d9f7a69
added constexpr tests to checked result operations
...
added tests for check result < and == operations
correct implementation of some checked result types
added constexpr example
2018-12-10 14:12:47 -08:00
Robert Ramey
1bdf30e2b2
clean up exception catching to suppress warnings.
...
sync up class and struct
2018-09-30 17:39:33 -07:00
Robert Ramey
992bd7b311
Changes generated by preparation for CPPCon 2018
2018-09-15 10:48:41 -07:00
Robert Ramey
52e0a2fe03
correction to exception expected
...
add example8 for difference between two unsigned ints
update documentation - pending issues
2018-09-04 13:37:21 -07:00
Robert Ramey
0e25e2095b
alter directory structure to comply with boost requirements
2018-08-16 11:03:38 -07:00
Robert Ramey
4e63548736
Refine embedded case study after running code on MPLab simulator
2018-08-10 13:07:38 -07:00
Robert Ramey
b62ef86e28
Added case study for embedded system
...
corrections in cpp promotion
added make_safe_literal
separated integers from other types
dropped example91
updated CMakeLists.txt and Jamfile.v2 accordingly
2018-07-21 09:57:35 -07:00
Robert Ramey
0d443e3a6f
alterations to accomodate VS 2017
...
currently passes all tests and examples on Clang, gcc and mdvc with C++14
2018-04-23 10:22:34 -07:00
Robert Ramey
b534437b76
correct issues in example93 and misc gcc issues.
...
correct Jamfile to skip performance test in debug mode
implement compile only test in CMakeLists.txt
2018-04-07 15:30:02 -07:00
Robert Ramey
3d67f22735
made fixes to pass tests for GCC compilers.
...
made jam files to be compatible with boost
made version of apveyor.yml which might work
2017-06-14 12:25:07 -07:00