Clemens Terasa
681104b68f
dispatchkit: boxed_value: Fix noexcept warning for Data ctor
...
Using gcc 13.3.0 I get many warnings like the following:
```
In file included from .../include/c++/13.3.0/bits/stl_iterator.h:85,
from .../include/c++/13.3.0/bits/stl_algobase.h:67,
from .../include/c++/13.3.0/bits/stl_tree.h:63,
from .../include/c++/13.3.0/map:62,
from .../ChaiScript/static_libs/../include/chaiscript/chaiscript_stdlib.hpp:10,
from .../ChaiScript/static_libs/chaiscript_stdlib.cpp:1:
.../include/c++/13.3.0/bits/stl_construct.h: In instantiation of ‘constexpr decltype (::new(void*(0)) _Tp) std::construct_at(_Tp*, _Args&& ...) [with _Tp = chaiscript::Boxed_Value::Data; _Args = {chaiscript::Type_Info, chaiscript::detail::Any, bool, std::nullptr_t, bool&}; decltype (::new(void*(0)) _Tp) = chaiscript::Boxed_Value::Data*]’:
.../include/c++/13.3.0/bits/stl_construct.h:115:21: required from ‘constexpr void std::_Construct(_Tp*, _Args&& ...) [with _Tp = chaiscript::Boxed_Value::Data; _Args = {chaiscript::Type_Info, chaiscript::detail::Any, bool, std::nullptr_t, bool&}]’
.../include/c++/13.3.0/bits/alloc_traits.h:661:19: required from ‘static constexpr void std::allocator_traits<std::allocator<void> >::construct(allocator_type&, _Up*, _Args&& ...) [with _Up = chaiscript::Boxed_Value::Data; _Args = {chaiscript::Type_Info, chaiscript::detail::Any, bool, std::nullptr_t, bool&}; allocator_type = std::allocator<void>]’
.../include/c++/13.3.0/bits/shared_ptr_base.h:604:39: required from ‘std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_Sp_counted_ptr_inplace(_Alloc, _Args&& ...) [with _Args = {chaiscript::Type_Info, chaiscript::detail::Any, bool, std::nullptr_t, bool&}; _Tp = chaiscript::Boxed_Value::Data; _Alloc = std::allocator<void>; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
.../include/c++/13.3.0/bits/shared_ptr_base.h:971:16: required from ‘std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...) [with _Tp = chaiscript::Boxed_Value::Data; _Alloc = std::allocator<void>; _Args = {chaiscript::Type_Info, chaiscript::detail::Any, bool, std::nullptr_t, bool&}; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
.../include/c++/13.3.0/bits/shared_ptr_base.h:1712:14: required from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<void>; _Args = {chaiscript::Type_Info, chaiscript::detail::Any, bool, std::nullptr_t, bool&}; _Tp = chaiscript::Boxed_Value::Data; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
.../include/c++/13.3.0/bits/shared_ptr.h:464:59: required from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<void>; _Args = {chaiscript::Type_Info, chaiscript::detail::Any, bool, std::nullptr_t, bool&}; _Tp = chaiscript::Boxed_Value::Data]’
.../include/c++/13.3.0/bits/shared_ptr.h:1009:14: required from ‘std::shared_ptr<std::_NonArray<_Tp> > std::make_shared(_Args&& ...) [with _Tp = chaiscript::Boxed_Value::Data; _Args = {chaiscript::Type_Info, chaiscript::detail::Any, bool, std::nullptr_t, bool&}; _NonArray<_Tp> = chaiscript::Boxed_Value::Data]’
.../ChaiScript/static_libs/../include/chaiscript/language/../dispatchkit/boxed_value.hpp:74:38: required from here
.../include/c++/13.3.0/bits/stl_construct.h:95:14: warning: noexcept-expression evaluates to ‘false’ because of a call to ‘chaiscript::Boxed_Value::Data::Data(const chaiscript::Type_Info&, chaiscript::detail::Any, bool, const void*, bool)’ [-Wnoexcept]
95 | noexcept(noexcept(::new((void*)0) _Tp(std::declval<_Args>()...)))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from .../ChaiScript/static_libs/../include/chaiscript/language/chaiscript_common.hpp:21,
from .../ChaiScript/static_libs/../include/chaiscript/chaiscript_stdlib.hpp:17:
.../ChaiScript/static_libs/../include/chaiscript/language/../dispatchkit/boxed_value.hpp:34:7: note: but ‘chaiscript::Boxed_Value::Data::Data(const chaiscript::Type_Info&, chaiscript::detail::Any, bool, const void*, bool)’ does not throw; perhaps it should be declared ‘noexcept’
34 | Data(const Type_Info &ti, chaiscript::detail::Any to, bool is_ref, const void *t_void_ptr, bool t_return_value)
| ^~~~
/
```
Fix this by adding a noexcept like the warning suggests.
2025-02-19 20:04:17 +01:00
Glen Fraser
5722a5177d
Fix crash with out of bounds index (issue #572 )
2021-07-08 18:55:36 +02:00
Bernd Amend
cff6a0aced
change .clang-format and reformat code with clang-format 11
...
I initially tried to use the existing .clang-format file,
but it does not match the code style (at least with clang-format 11)
and the formatting is not consistent across files.
Therefore, I decided to rewrite the .clang-format with some personal
preferences.
Used command
find . -iname "*.hpp" -o -iname "*.cpp" | xargs clang-format -i -style=file
2021-05-24 10:44:15 +02:00
Bernd Amend
82ef037912
fix vs2019 build
2021-05-22 23:53:31 +02:00
Bernd Amend
8ee033cf89
remove not required ()
2021-05-22 18:45:12 +02:00
Bernd Amend
14e9ec6e97
fix implicit conversion warnings by making them explicit
2021-05-22 18:45:12 +02:00
Bernd Amend
1302e28e32
replace the deprecated is_pod_v with is_trivial_v
...
is_pod_v was deprecated in C++20, is_pod_v can be
replaced with is_trivial_v && is_standard_layout_v.
I don't see any benefit from is_standard_layout_v,
but I could have missed something.
2021-05-22 18:45:12 +02:00
Bernd Amend
cf7821cb1e
fix ChaiScript#537
2021-05-22 18:45:12 +02:00
Bernd Amend
19929be684
don't default implicitly deleted operator=/ctor ChaiScript#527
2021-05-22 18:44:54 +02:00
Bernd Amend
c4e1e1965e
remove not required ";"
2021-05-22 14:09:24 +02:00
Bernd Amend
1e6263976f
don't return voids
2021-05-22 14:05:52 +02:00
Bernd Amend
2b3bddb02d
replace typedef with using
2021-05-22 14:04:04 +02:00
Bernd Amend
684522a8b7
fix -Wcovered-switch-default warnings
2021-05-22 14:01:39 +02:00
Bernd Amend
e62f0d3296
drop useless statics and/or add [[nodiscard]]
2021-05-22 13:50:57 +02:00
Bernd Amend
c47b9e3b0d
replace const std::string_view with std::string_view
2021-05-22 13:40:32 +02:00
frysch
ab691f687d
map_conversion: copy forced for loop var p (incompatible ref type)
...
The underlying pair that is dereferenced from the iterator has always `const` qualified `first` member (key type). Therefore, an unnecessary temporary was created and bounded to the const ref to the pair. This could be also fixed with `for (const auto &p : from_map)`.
2021-01-15 09:14:49 +01:00
Rob Loach
d7832661e7
Merge pull request #503 from SG-Skril/develop
...
Fix for lambdas returning booleans
References #481
2020-12-11 14:46:50 -05:00
Glen Fraser
259f130a60
Fix build warnings from unused enums in switch; unused function arg
2020-10-16 11:56:07 +02:00
Glen Fraser
f355d27aea
Fix GCC build error "explicit specialization in non-namespace scope"
...
- other compilers don't complain, but for GCC needed to move the
template constructor specialization (array of size 0) outside the
class declaration.
2020-09-04 13:52:25 +02:00
Glen Fraser
350acbf254
Fix compile errors on VS2019 (C++17) with Function_Params
...
- needed to disambiguate between chaiscript::Function_Params and
chaiscript::dispatch::detail::Function_Params in several places.
2020-09-04 12:57:49 +02:00
Glen Fraser
dd69230f19
Fix issues with Function_Params constructors (array and vector args)
...
- code (on MSVC) was asserting due to trying to dereference invalid
pointers (dereferencing the end iterator, even if only to get its
address!).
- when a Function_Params is constructed with an empty vector, you
can't return the address of the vec.front() -- instead we use
nullptr for the m_begin and m_end pointers.
2020-09-04 11:27:52 +02:00
SG-Skril
0e243b006a
Potential fix for issue ChaiScript#481
...
(bool cannot be stored in Boxed_Number)
2019-11-10 18:07:47 +01:00
Jason Turner
27072a77e6
Get VS compiling
2019-04-20 12:26:12 -06:00
Jason Turner
b7e26b9076
Attempt to get C++17 work compiling for VS 2019
2019-04-20 12:09:24 -06:00
Jason Turner
c737f2419b
Merge pull request #453 from AlekMosingiewicz/error_on_double_conversion
...
Error on double conversion
2018-08-15 13:33:13 -06:00
Jason Turner
5db87a9175
Merge branch 'release-6.x' into develop
2018-08-15 13:13:44 -06:00
Jason Turner
44dab4d45c
Deal with returning of & to * types
2018-08-15 13:10:23 -06:00
Alek Mosingiewicz
9f9436e741
Remove newlines.
2018-08-13 21:19:15 +02:00
Alek Mosingiewicz
b9741d9433
Make conversion_error inherit from bad_boxed_cast.
2018-08-13 18:25:43 +02:00
Alek Mosingiewicz
eb3ee28cee
Some better naming for test.
2018-08-13 17:56:49 +02:00
Alek Mosingiewicz
80f11de41e
Make information on source and target types in Type Conversion
...
Exception public.
2018-08-10 17:57:15 +02:00
Alek Mosingiewicz
27bee4a266
Bypass the mutex problem when looking for conversion, automatic
...
test.
2018-08-10 17:29:46 +02:00
Alek Mosingiewicz
ecd6000d54
Throw conversion error when conversion already exists.
2018-08-07 18:00:58 +02:00
Jason Turner
a880319db8
Merge branch 'develop' into best_practices
2018-05-30 08:30:29 -06:00
Jason Turner
c19705da5d
Merge remote-tracking branch 'origin/c++17' into develop
2018-05-29 13:21:09 -06:00
Jason Turner
2d762c8be3
Update copyrights to 2018
2018-05-29 11:51:15 -06:00
Jason Turner
dae0f3dd62
Merge pull request #411 from stephenberry/develop
...
Critical fix of type_info ordering (less than operator)
2018-05-25 16:27:56 -06:00
Jason Turner
805e7c0917
Fix up some error handling
2018-05-25 14:33:17 -06:00
Stephen Berry
d24743370a
Merge branch 'develop' of https://github.com/ChaiScript/ChaiScript into develop
2018-05-24 12:21:35 -05:00
Jason Turner
0520bb178c
Fix capture error
2018-05-20 20:36:33 -06:00
Jason Turner
c14d9dfb6e
Fix some new clang related warnings
2018-05-08 10:05:10 -06:00
Jason Turner
f695a24e1b
Fix clang warning for undefined msvc symbol check
2018-05-08 09:46:01 -06:00
Jason Turner
a48f358555
Better error reporting on missing type info
2018-04-01 11:06:48 -06:00
Stephen Berry
0ad4f83366
Removed constexpr for Visual Studio compilation. Xcode (LLVM) works with constexpr on the before function, but Visual Studio (2015) does not.
2018-02-15 09:10:11 -06:00
Stephen Berry
2dbfdfe111
Critical type_info ordering fix. Was using a less than comparison on pointers, which sometimes resulted in differing behavior between compilations.
2018-02-15 08:59:20 -06:00
Jason Turner
6c41ac90d8
Add to_int(int) and similar overloads
...
* This is so that `to_int` `to_char` `to_long` and similar work not
only with strings but also with built-in types
2018-02-02 20:35:32 -07:00
Jason Turner
695fa0b371
Proper fix for noexcept/msvc2017
...
From @StephanTLavavej
2018-01-19 11:54:19 -07:00
Jason Turner
eb93760f1b
Fix building on MSVC in C++17 mode
...
Closes #403 #396 #395
2018-01-19 10:26:31 -07:00
Jason Turner
db72ab626f
Consolidate hand-rolled flat maps
2017-11-24 22:20:52 -07:00
Jason Turner
48e5a46cbd
Move to QuickFlatMap from manual vector map thing
2017-11-23 22:38:15 -07:00