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
Rohlem
db39b2f316
added test cases for noexcept functions
...
All pass in C++14, broken in C++17
2017-06-16 13:35:28 -04:00
ThePhD
4f959c9a41
update single
2017-06-15 01:24:53 -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
51a03b2b35
[ci skip] add docs about running out of heap space
2017-06-12 17:34:42 -04:00
ThePhD
0fb52a1152
I can write tests, I promise
2017-06-12 10:49:38 -04:00
ThePhD
42253cadfb
guard against is_integral
accepting booleans as integers
2017-06-12 10:45:51 -04:00
ThePhD
50935ae66b
[ci skip] update readme
2017-06-07 15:27:49 -04:00
ThePhD
e1c8d4b061
clang and gcc differ in their use of unknown options.... which is always nice, always nice for two compilers to fight with each other
2017-06-07 13:24:53 -04:00
ThePhD
b391a709bc
no-unknown-warning should prevent older compilers from barfing
2017-06-07 13:02:51 -04:00
ThePhD
d8f6127bf8
boosted pragmas
2017-06-07 12:53:24 -04:00
ThePhD
02110a5361
update single with newest version
...
Fixes #414
FIxes #419
2017-06-07 12:36:35 -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
7168c3177b
Add some additional documentation to aid in understanding
2017-05-31 18:58:24 -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
acee4dbbc9
[ci skip] fix docs
2017-05-27 11:00:15 -04:00
ThePhD
2393d0bcfd
update single
2017-05-20 20:03:28 -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
7eccb5883e
Sigh. I hate you, LuaJIT.
2017-05-09 15:16:51 -04:00
ThePhD
934f55058d
Of course LuaJIT woudl ruin everything.
2017-05-09 15:12:20 -04:00
ThePhD
a0255fac54
LuaJIT implements a tail call optimization that folds / flattens / crushes part of the stack, making it (and its related environment) impossible to retrieve through the C API. This is... disconcerting, but you can get around it by adding extra parenthesis around return types to prevent tail call optimization at that site.
2017-05-09 14:31:27 -04:00
ThePhD
86e2de297d
update single, ensure unused variables are axed
2017-05-09 13:31:44 -04:00
ThePhD
8efafca46a
[ci skip] update single, bump version
2017-05-09 13:27:23 -04:00
ThePhD
58003669fb
this_environment is now live
2017-05-09 13:24:56 -04:00
ThePhD
c7237806ef
add a new example, add a note, adjust for LuaJIT Beta3 and beyond (hopefully it doesn't flip its crap: will have to warn suers....)
2017-05-07 10:16:47 -04:00
ThePhD
5bc5def14d
update single
2017-05-04 03:18:46 -04:00
Carlos Carrasco
7b78558413
add test for map
2017-05-03 18:54:38 -04:00
Carlos Carrasco
e13711ed84
add find method to containers to make fast lookups into set/unordered_set
2017-05-03 18:54:38 -04:00
ThePhD
fc3e7c40f3
static properties work as intended, I guess
2017-04-25 19:44:53 -04:00
ThePhD
0db6d99d4b
add new examples
2017-04-20 22:31:59 -04:00
ThePhD
c124d51353
Fix #398 by ensuring proper usertype propagation.
2017-04-20 20:27:32 -04:00
sjaustirni
eebda40507
made "error" accessible in the Lua state
...
We need to expose `error()` in Lua in order to let it call the error handler function. However, for that the base library needs to be available in the Lua state.
Without this fix the output of the program is
`call failed, sol::error::what() is Handled this message: [string "..."]:7: attempt to call a nil value (global 'error')`
while it's supposed to be
`call failed, sol::error::what() is Handled this message: [string "..."]:7: negative number detected`
2017-04-20 20:17:06 -04:00
ThePhD
3d5f80e35a
Fix bad tag for clang
2017-04-19 15:29:26 -04:00
ThePhD
a1e3dabe36
luajit has different behavior. What a surprise.
2017-04-19 13:37:03 -04:00
ThePhD
a3d6f8044c
working stuff!~
2017-04-19 13:00:47 -04:00
ThePhD
de7d7e8da5
update versions
2017-04-18 20:26:35 -04:00
ThePhD
2acc8bee14
get_environment, documentation updates, and tests
2017-04-18 20:23:20 -04:00
ThePhD
b02f54c592
I never fixed the license FeelsBadMan
2017-04-16 00:33:40 -04:00
ThePhD
36cc7f2863
crush the stack on final error when throwing to prevent 'leaks' in bad cases
2017-04-09 19:37:45 -04:00
ThePhD
a6e03ac214
tfw you break everything 'cause you're bad
2017-04-09 13:03:41 -04:00
ThePhD
2df532f79b
There was a leak when running scripts and catching errors, where she didn't properly clean up the stack.
2017-04-09 12:04:57 -04:00