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.
53 lines
2 KiB
CMake
53 lines
2 KiB
CMake
if( ECC_IMPL STREQUAL secp256k1 )
|
|
add_executable( blind all_tests.cpp crypto/blind.cpp )
|
|
target_link_libraries( blind fc )
|
|
endif()
|
|
|
|
add_executable( task_cancel_test all_tests.cpp thread/task_cancel.cpp )
|
|
target_link_libraries( task_cancel_test fc )
|
|
|
|
|
|
add_executable( bloom_test all_tests.cpp bloom_test.cpp )
|
|
target_link_libraries( bloom_test fc )
|
|
|
|
add_executable( hmac_test hmac_test.cpp )
|
|
target_link_libraries( hmac_test fc )
|
|
|
|
add_executable( ecc_test crypto/ecc_test.cpp )
|
|
target_link_libraries( ecc_test fc )
|
|
|
|
#add_executable( test_aes aes_test.cpp )
|
|
#target_link_libraries( test_aes fc ${rt_library} ${pthread_library} )
|
|
#add_executable( test_sleep sleep.cpp )
|
|
#target_link_libraries( test_sleep fc )
|
|
#add_executable( test_rate_limiting rate_limiting.cpp )
|
|
#target_link_libraries( test_rate_limiting fc )
|
|
|
|
add_executable( all_tests all_tests.cpp
|
|
compress/compress.cpp
|
|
crypto/aes_test.cpp
|
|
crypto/base_n_tests.cpp
|
|
crypto/bigint_test.cpp
|
|
crypto/blind.cpp
|
|
crypto/dh_test.cpp
|
|
crypto/rand_test.cpp
|
|
crypto/sha_tests.cpp
|
|
io/json_tests.cpp
|
|
io/stream_tests.cpp
|
|
io/tcp_test.cpp
|
|
io/varint_tests.cpp
|
|
network/http/websocket_test.cpp
|
|
thread/task_cancel.cpp
|
|
thread/thread_tests.cpp
|
|
thread/parallel_tests.cpp
|
|
bloom_test.cpp
|
|
reflection_tests.cpp
|
|
serialization_test.cpp
|
|
stacktrace_test.cpp
|
|
time_test.cpp
|
|
utf8_test.cpp
|
|
variant_test.cpp
|
|
logging_tests.cpp
|
|
api_tests.cpp
|
|
)
|
|
target_link_libraries( all_tests fc )
|