mirror of
https://github.com/JakeHillion/object-introspection.git
synced 2024-11-09 21:24:14 +00:00
3d91603c8e
std::basic_string takes three template parameters: 1. CharT 2. Traits 3. Allocator The Traits parameter was causing issues, as it requires a type which exposes certain things, e.g. `Traits::value_type`. We have a few options to resolve this: 1. Remove this parameter, as we do for allocators Cons: removing a template parameter doesn't work if other parameters appear after it 2. Stub this parameter, as we do for hashers/comparators Cons: we need to hardcode an implementation that satisfies the `Traits::value_type` requirements 3. Leave the parameter as-is Cons: will not work if a non-standard Traits is used By using the real implementation of this Traits parameter (normally `std::char_traits<CharT>`), we get one that we know will work as long as it is defined in a stdlib header. Option 3 is what we use in this patch. Instead of adding more configuration options to the container TOML file format (e.g. `params_to_keep = [1]`), we add `std::char_traits` as a dummy container type. Now, whenever `std::char_traits` appears, it will be left as-is, i.e. not removed, replaced or reverse-engineered. This is the same approach previously used for Thrift's isset_bitset.
61 lines
2.0 KiB
TOML
61 lines
2.0 KiB
TOML
[types]
|
|
containers = [
|
|
"../types/array_type.toml",
|
|
"../types/string_type.toml",
|
|
"../types/cxx11_string_type.toml",
|
|
"../types/folly_iobuf_type.toml",
|
|
"../types/folly_iobuf_queue_type.toml",
|
|
"../types/set_type.toml",
|
|
"../types/unordered_set_type.toml",
|
|
"../types/seq_type.toml",
|
|
"../types/list_type.toml",
|
|
"../types/cxx11_list_type.toml",
|
|
"../types/deque_list_type.toml",
|
|
"../types/shrd_ptr_type.toml",
|
|
"../types/uniq_ptr_type.toml",
|
|
"../types/std_map_type.toml",
|
|
"../types/std_unordered_map_type.toml",
|
|
"../types/pair_type.toml",
|
|
"../types/stack_container_adapter_type.toml",
|
|
"../types/queue_container_adapter_type.toml",
|
|
"../types/priority_queue_container_adapter_type.toml",
|
|
"../types/ref_wrapper_type.toml",
|
|
"../types/multi_map_type.toml",
|
|
"../types/folly_small_heap_vector_map.toml",
|
|
"../types/folly_optional_type.toml",
|
|
"../types/optional_type.toml",
|
|
"../types/try_type.toml",
|
|
"../types/fb_string_type.toml",
|
|
"../types/small_vec_type.toml",
|
|
"../types/f14_fast_map.toml",
|
|
"../types/f14_node_map.toml",
|
|
"../types/f14_vector_map.toml",
|
|
"../types/f14_fast_set.toml",
|
|
"../types/f14_node_set.toml",
|
|
"../types/f14_vector_set.toml",
|
|
"../types/sorted_vec_set_type.toml",
|
|
"../types/map_seq_type.toml",
|
|
"../types/boost_bimap_type.toml",
|
|
"../types/repeated_field_type.toml",
|
|
"../types/repeated_ptr_field_type.toml",
|
|
"../types/caffe2_blob_type.toml",
|
|
"../types/std_variant.toml",
|
|
"../types/thrift_isset_type.toml",
|
|
"../types/weak_ptr_type.toml",
|
|
"../types/std_char_traits.toml",
|
|
]
|
|
|
|
[headers]
|
|
user_paths = [
|
|
"_deps/folly-src", # this path might be flaky, but it's unlikely to change
|
|
]
|
|
system_paths = [
|
|
"/usr/include/c++/11",
|
|
"/usr/include/x86_64-linux-gnu/c++/11",
|
|
"/usr/include/c++/11/backward",
|
|
"/usr/local/include",
|
|
"/usr/lib/llvm-12/lib/clang/12.0.1/include",
|
|
"/usr/include/x86_64-linux-gnu",
|
|
"/usr/include",
|
|
]
|