ThePhD
7af8b4e80a
make sure tests don't throw where possible
...
edit stack checks
update container_usertype_as_container examples
2017-08-11 18:12:13 -04:00
mrgreywater
372db6f6ab
large integer
2017-08-11 11:39:46 -04:00
ThePhD
5e109c2c37
clang keeps complaining about overload issues...
2017-08-11 10:36:11 -04:00
ThePhD
4f7f1af515
trying to pin this error down...
2017-08-11 10:21:15 -04:00
ThePhD
644a5c549b
modifying tests to find out where crash is...
2017-08-11 09:59:42 -04:00
ThePhD
e0f6b636f1
now we start making a half-dozen commits trying to appease the various forms of clang++ and g++
2017-08-11 09:40:56 -04:00
ThePhD
eb1560d12a
add as_container documentation
...
improve exception documentation
improve state_view default handlers
add SAFE_PROPAGATION defines for compiling C++ as Lua
add examples for automatic operator registrations and as_container
fix tutorial code
change tests to not throw unless absolutely necessary
provide synchronization for file writing in tests
provide thread safety around thread tests for REQUIRE
add ostream automatic support
change 5.1 compat to only kick in luaL_loadbufferx and luaL_loadfilex when LuaJIT is version 2.0.1 and lower
2017-08-11 03:24:17 -04:00
ThePhD
b1f7d81acb
immunize as_table from std::reference_wrapper and pointer types.
2017-08-07 15:10:05 -04:00
ThePhD
c4b13b2b73
modify table push operations
2017-08-07 14:54:17 -04:00
ThePhD
c8728af5b5
throwing is unreliable... sigh
2017-08-07 14:22:56 -04:00
ThePhD
6eaa277860
bootstrap update to link pthreads, on top of container_traits improvement because of clang++ bounds-checking
2017-08-07 13:58:06 -04:00
ThePhD
092fec7afb
improve traits
2017-08-07 08:47:17 -04:00
ThePhD
62b242bc96
unused parameter, accidental string
2017-08-07 07:59:13 -04:00
ThePhD
f1ff3d6492
improve tests
...
change the default chunk name (and make it trail off if chunk name is too small)
minor changes to appease g++'s and clang++'s many warnings
2017-08-07 07:54:43 -04:00
ThePhD
b86d90f0e5
std::cend doesn't exist in C++11
...
remove unused variables detected by clang and g++
appease the parenthesis monster that was put into g++ 5.0
2017-08-07 02:27:08 -04:00
ThePhD
ca685e01c9
gcc plagues me , and will continue to, for a while to come
...
BUT IT WOOORKS!
2017-08-07 02:07:21 -04:00
ThePhD
03c229b25b
overhaul examples and add 2 new ones in preparation for the coming hell
...
fix how `stack_aligned_protected_function` and its friends behave
add new internal handler details to allow for stack-based handlers with maximum performance
update `string_shim` typedef to simply be called `string_view` and use `string_view` in all public-facing APIs.
2017-08-06 12:20:32 -04:00
ThePhD
104485bebd
this mega commit prepares to fix all of the issues listed in the repository for the past 3 weeks
2017-08-05 19:20:28 -04:00
ThePhD
2d65f6caa5
vetting for C++17
2017-07-09 19:04:51 -04:00
ThePhD
afaecbad2c
in_place will be the death of me
2017-07-09 13:44:28 -04:00
ThePhD
930f82cd5b
missed some comment markers
2017-07-09 12:59:28 -04:00
ThePhD
e69e7c79fa
C++17 additions: std::variant, string_views of all types, checker for if we have the right version
...
added variadic_results, to return a variable number of arguments to Lua
added variadic_results and as_results
added improved function examples (for multiple results and split overloading out)
added tests for variadics
added tests for C++17 utilities
added a forwarding header
added a specific `unsafe_function` header
added and improved documetation pages
2017-07-09 12:54:52 -04:00
Rohlem
077448bfc8
enable move semantics when pushing rvalue optional
...
add forward_like-style cast to stack::pusher<optional<O>>
2017-07-06 20:13:09 -04:00
ThePhD
504f49f3c7
update state to use default handler
2017-07-04 04:41:32 -04:00
ThePhD
da28527421
prepare for container_traits to be a thing
...
update large parts of the documentation and add a new section to streamline information about functions
2017-07-01 11:02:15 -04:00
ThePhD
1a6937e24e
Revert previous change of not pushing nil
when we encounter a nullptr
from special usertypes. If people want to check, they'll need to use optional or a raw pointer: messing with the raw usertype can also lead to some surprising problems, so we don't need to specialize for that use case.
2017-06-30 18:18:25 -04:00
Ilia Udalov
8d5aa69117
Fix compilation on Max OS X with lua 5.1
2017-06-27 21:26:07 -04:00
ThePhD
af2136ba00
Closes #431
...
If only I had a test that took a unique_ptr as a second argument. RIP.
2017-06-26 10:10:47 -04:00
ThePhD
13370e7e42
more constructors PogChamp
2017-06-24 10:20:07 -04:00
ThePhD
17271c84cb
BREAKING CHANGE: std::pair
for regular containers that are not marked as as_table_t
or as_nested
will now behave like regular containers and not force themselves to be key-value pairs. table-style serialization is still unaffected.
2017-06-23 18:07:24 -04:00
ThePhD
6b34a15d68
it would help if I was not blind
2017-06-19 23:06:57 -04:00
ThePhD
5468ab8b4e
Let's hope we didn't break shit...
2017-06-19 23:04:23 -04:00
ThePhD
5363a63de0
g++ sometimes chokes on parsing certain combinations of characters because of disambiguation rules
2017-06-17 00:52:02 -04:00
ThePhD
b811e73b90
who knew noexcept proofing would be so hard...? And there's so many places it could be activated in...!
2017-06-17 00:43:26 -04:00
ThePhD
11916a7c72
add noexcept function type barriers and guards
...
noexcept-proof function call trampolines
add noexcept tests to ensure its being checked
TODO: check g++ 7.1 builds when using -std=c++17 ...
2017-06-16 18:43:40 -04:00
Rohlem
39fdb5e041
add noexcept specializations to meta (detail) template trait structs
...
fixes the noexcept tests for C++17 (on my compiler)
2017-06-16 13:35:28 -04:00
ThePhD
0fb53335c4
this commit adds support for differentiating between multiple different unique_usertypes without actually having to store type information. It does not include the ability to override a unique_usertype
label for a specific type, but that might not prove necessary if differentiation remains possible with this methodology
...
Complete fixes #422 and addresses #423
2017-06-15 01:23:51 -04:00
ThePhD
85620df63c
new checker for unique_usertype to ensure type safety, when SOL_CHECK_ARGUMENTS or a protected tag is used to protect a function
2017-06-13 16:34:18 -04:00
ThePhD
42253cadfb
guard against is_integral
accepting booleans as integers
2017-06-12 10:45:51 -04:00
ThePhD
661386c384
revert codecvt fix for MinGW v7 and greater
...
add docs about compiler support
add notes about compilation issues
update single
2017-06-07 12:33:59 -04:00
ThePhD
090c834f2c
Let nullptr pass through, but we still can't do a conversion from lua_nil
to unique_usertype
s.
2017-06-07 11:02:47 -04:00
ThePhD
ea895b4338
hard errors for container usertypes if SOL_CHECK_ARGUMENTS is defined.
...
otherwise, as usual, we assume you know what you're doing
2017-06-03 06:25:06 -04:00
ThePhD
51245a9e7b
go to hell, gcc and clang
2017-05-29 13:06:37 -04:00
ThePhD
fd8e2df92e
fix some semantics for container usertypes, their iterators, and how they push their value types (to cope with crappy input iterator "containers")
...
add better handling for `readonly` to prevent bugs from `const`-ifying the return value of a member variable (e.g., unexpected copy semantics)
add more tests and add a few more handlers for new readonly type
fix simple_usertype_metatable's handling of newindex and index when not at the top level
2017-05-29 10:32:37 -04:00
ThePhD
c6d11a2bac
fix index and newindex semantics on simple_usertypes
...
we do not have to hit the metatable by-name since we go to special lengths to ensure we have a simple usertype table we can use
2017-05-28 19:14:18 -04:00
ThePhD
6047f48343
vet container_usertype and wrap for the proper traits regarding assignment and checking of said assignments
...
update documentation with more tips and other similar things
2017-05-20 20:01:04 -04:00
ThePhD
5ff394ae0d
use the copy assignable trait, even if that's not exactly what we're going for...
2017-05-16 20:20:59 -04:00
ThePhD
51d6f6fa54
You would think that we'd have accounted for this earlier...
...
Fixes #405
2017-05-16 06:12:28 -04:00
ThePhD
34b81bef6b
Handle qualified name failures of VC++, where using
templates do not match the fully qualified names of what they alias to (Thanks, VC++)
2017-05-15 10:41:50 -04:00
ThePhD
86e2de297d
update single, ensure unused variables are axed
2017-05-09 13:31:44 -04:00