Commit graph

911 commits

Author SHA1 Message Date
Nathan Hourt
292584ca59 Add static_variant::operator==
For real this time :)
2019-08-31 12:48:52 -05:00
Nathan Hourt
94cb1858b8 Fix constexprs, unused code 2019-08-31 12:48:52 -05:00
Nathan Hourt
c69ea32613 Improve reflection system and static_variant
Previously, fc reflection generated visitor infrastructure capable of
visiting each field of a struct; however, this is only useful for run-
time operations on structures. No compile-time information was preserved
about the fields of a struct, making compile-time introspection of types
impossible.

Now FC reflection generates rich compile-time information about the
members of structs, including types, names, and structure, allowing
code to be written to explore types in detail at compile-time and fetch
arbitrary fields at runtime without needing to iterate over the unwanted
fields.

To make this a reality, a new `typelist` type was added to store this
compile-time information. This type is also useful within the context of
`static_variant`, as SV previously used implementation detail types in a
private namespace to provide this functionality. Now `static_variant`
uses the reusable functionality of `typelist` to operate, dramatically
reducing the amount of code dedicated to `static_variant` and also
making `static_variant` types more flexible to work with since their
infrastructure is now based on the `typelist` public interface.
2019-08-30 14:21:36 -05:00
Nathan Hourt
5278a125df
Merge pull request #154 from nathanhourt/sv_overloads
Replace improper static_variant operator overloads with comparators
2019-08-30 14:19:06 -05:00
Nathan Hourt
45cb433d47 Fixes from code review 2019-08-30 11:52:05 -05:00
Nathan Hourt
cce644f686
Fix warnings
The `appender` class is intended to be inherited and used polymorphically, but does not have a virtual destructor, which causes warnings. This adds a virtual destructor to fix these warnings.
2019-08-29 11:26:34 -05:00
Nathan Hourt
9f7f1b4790 Replace improper static_variant operator overloads with comparators 2019-08-28 15:51:14 -05:00
Peter Conrad
71f5348101
Merge pull request #150 from pmconrad/tcp_socket_size
Fix core #1935
2019-08-20 15:43:39 +02:00
Peter Conrad
7b37cd6eff Fix core #1935 2019-08-19 12:09:53 +02:00
crypto-ape
a1c2ff9943 support openbsd // make code compliant with clang 2019-08-15 12:22:54 +02:00
John M. Jones
91d8772b7b
Merge pull request #147 from bitshares/jmj_winfix
Increase size for Boost 1.70
2019-08-13 14:02:18 -05:00
John Jones
8426b45d6c Increase size for Boost 1.70 2019-08-13 13:11:36 -05:00
Abit
17c46399ed
Merge pull request #145 from nathanhourt/bts_1898
Resolves issue https://github.com/bitshares/bitshares-core/issues/1898: Fix crash in API
2019-08-13 19:24:18 +02:00
Nathan Hourt
06f88979a0 Resolve #1898: Fix crash in API
We were getting the moral equivalent of a null pointer dereference by
incrementing an iterator past its past-the-end position, then
dereferencing it. This is now fixed.
2019-08-11 13:51:08 -05:00
Peter Conrad
d8bec3d847 Resolved another begin/data inconsistency 2019-08-05 21:27:53 +02:00
Peter Conrad
42be69c3f7 Removed unused var 2019-08-02 17:31:28 +02:00
Peter Conrad
6008c96c1a Allow more space for windows sockets due to fc::future changes 2019-07-26 15:02:17 +02:00
Peter Conrad
451ed46ecc Replace one more "new promise" with "promise::create" 2019-07-26 15:02:17 +02:00
Abit
966e9ea64e
Merge pull request #121 from crypto-ape/master_mingw
CMake cleanup & MinGW support
2019-07-25 09:44:37 +02:00
Abit
e4b35e4a42
Update a comment to avoid confusing doxygen 2019-07-18 23:15:22 +02:00
crypto-ape
e0dd942875 Update build system for MinGW 2019-07-08 10:43:02 +02:00
Peter Conrad
6ed94317ab
Merge pull request #137 from pmconrad/1584_more_simplification
More simplifications
2019-06-19 18:34:59 +02:00
Peter Conrad
deb9d4f0a6 Make task internal storage private 2019-06-19 17:40:22 +02:00
Peter Conrad
3fa4fa6148 Fixed typo 2019-06-19 17:31:54 +02:00
crypto-ape
f29248d139 extend static_variant with is_type() method 2019-06-11 18:00:01 +02:00
Peter Conrad
ed7eefec67 Avoid array copy 2019-06-11 13:32:04 +02:00
Peter Conrad
1bda001b8c Use common inline functions for splitting/combining uint128 to/from two uint64 values 2019-06-11 08:51:59 +02:00
Peter Conrad
b16bf00a10 Made task_base destructor virtual 2019-06-10 23:25:56 +02:00
Peter Conrad
f1746b705a Make data_size static in hash classes 2019-06-10 23:24:09 +02:00
Peter Conrad
40797b1026 Fixed typo 2019-06-10 18:52:46 +02:00
Peter Conrad
79b2a0d634 Add support for native 128bit types 2019-06-08 10:25:52 +02:00
Peter Conrad
7649f1f47d Removed broken http_server + unused http_api 2019-06-06 14:54:48 +02:00
Peter Conrad
8196eb98c8 Added fc::int128_t 2019-06-06 14:41:47 +02:00
Peter Conrad
a11a50d4e1 Replaced true_type, false_type, is_class, is_enum with std type_traits 2019-06-06 14:41:47 +02:00
Peter Conrad
f732a587d7 Replace NO_RETURN with [[noreturn]] standard attribute 2019-06-06 14:41:47 +02:00
Peter Conrad
1025c36153 Replaced fc::nullptr_t with std::nullptr_t 2019-06-06 14:41:47 +02:00
Peter Conrad
8ad041cea0 Replaced fc::deduce with std::remove_reference<std::remove_const<>> 2019-06-06 14:41:47 +02:00
Peter Conrad
0aac8a4afc Replaced fc::forward with std::forward 2019-06-06 14:41:47 +02:00
Peter Conrad
a8337ecc42 Added constexpr where applicable 2019-06-06 14:41:47 +02:00
Peter Conrad
632a90709e Replace fc::array with std::array 2019-06-06 14:41:47 +02:00
Peter Conrad
a3e2410091 Replace fc::uint128 with boost::multiprecision::uint128_t 2019-06-06 14:41:09 +02:00
Peter Conrad
648d969fb9 Remove unused header 2019-06-06 14:39:14 +02:00
Peter Conrad
022c40dde2 Removed unused real128 2019-06-06 14:39:14 +02:00
Peter Conrad
7506aaefe7 Moved retain/release to task_base 2019-06-06 14:39:14 +02:00
Peter Conrad
19bbc4080e Added retain where applicable 2019-06-06 14:39:14 +02:00
Peter Conrad
7cf371736b Intermediate 2019-06-06 14:39:14 +02:00
Peter Conrad
58e16e543d Replaced most fc::shared_ptr with std::shared_ptr 2019-05-29 11:28:40 +02:00
Peter Conrad
3b3cadf7d5 Separate exception declaration and implementation 2019-05-28 17:22:57 +02:00
Peter Conrad
9069e05cb0 Get rid of some inlines 2019-05-28 17:20:57 +02:00
Peter Conrad
de46823a99 Dont inline generic pack/unpack to enable externalized serialization 2019-05-28 17:20:57 +02:00