|
struct | ServiceRequirementsChecker |
|
struct | ProviderPackExtractor |
|
struct | ServiceProviderRequirementsChecker |
| Compiles only if PROVIDER class satisfied service provider requirements. More...
|
|
struct | ProviderPackExtractor< First, Others...> |
|
struct | ProviderPackExtractor< Service > |
|
struct | has_duplicate_types |
|
struct | SetFrom |
| Implementation detail for the extraction constructor. More...
|
|
struct | has_type |
|
struct | has_type< Target, First, Others...> |
|
struct | has_type< Target, Target, Others...> |
|
struct | has_type< Target > |
|
struct | has_duplicate_types< Key, Types...> |
|
struct | has_duplicate_types<> |
|
struct | are_types_contained |
|
struct | are_same_types |
|
struct | are_types_contained< First, OtherTypes...> |
|
struct | are_types_contained< First > |
|
struct | is_provider_pack |
|
struct | is_provider_pack< ProviderPack< Providers...> > |
|
struct | have_same_provider_types |
|
struct | have_same_provider_types< ProviderPack< AProviders...>, ProviderPack< BProviders...> > |
|
struct | findFirstMatching_answer |
|
struct | findFirstMatching_answer< Match, Target, true, Candidates...> |
|
struct | findFirstMatching_dispatcher |
|
struct | findFirstMatching_dispatcher< Match, Target > |
|
struct | findFirstMatching_dispatcher< Match, Target, FirstCandidate, OtherCandidates...> |
|
struct | findFirstMatching_answer< Match, Target, false, FirstCandidate, OtherCandidates...> |
|
struct | findFirstMatching_impl |
|
struct | findNextMatching_impl |
|
struct | findNextMatching_impl< NSkip, Match, Target, FirstCandidate, OtherCandidates...> |
|
struct | findNextMatching_impl< 0U, Match, Target, FirstCandidate, OtherCandidates...> |
|
struct | findNextMatching_impl< NSkip, Match, Target > |
|
struct | findTheMatching_impl |
|
struct | is_derived_of |
|
struct | SetFrom< DestPack, SourcePack, FirstProvider, OtherProviders...> |
|
struct | SetFrom< DestPack, SourcePack > |
|
struct | ProviderPackComparerBase |
|
struct | ProviderPackComparer |
|
struct | ProviderPackComparer< APack, BPack, First, Others...> |
|
struct | ProviderPackComparer< APack, BPack, First > |
|
struct | OptionalHexFloatFormatter |
|
struct | RangeTraits |
|
class | CollectionExtremes |
| Class storing a begin and a end iterator. More...
|
|
class | CounterBlock |
| Type of block of counters (just a STL array until SUBCOUNTERS are in) More...
|
|
struct | CountersMapTraits |
|
struct | enable_if_type_exists |
|
class | iteratorRange |
| Enclosure to use two iterators representing a range in a range-for loop. More...
|
|
class | const_datarange_iterator |
|
|
template<typename Derived , typename... Bases> |
constexpr std::size_t | indexOfBaseOf () |
| Index of the class among Bases which is base of Derived. More...
|
|
template<typename Derived , typename... Bases> |
constexpr std::size_t | indexOfDerivedFrom () |
|
template<typename Derived , typename... Bases> |
constexpr std::size_t | findBaseOf () |
| Index of the class among Bases which is base of Derived. More...
|
|
template<typename Derived , typename... Bases> |
constexpr std::size_t | findDerivedFrom () |
|
template<typename Derived , typename... Bases> |
constexpr std::size_t | hasBaseOf () |
| Returns whether there is exactly one base class of Derived among Bases . More...
|
|
template<typename Derived , typename... Bases> |
constexpr std::size_t | hasDerivedFrom () |
|
template<typename Provider , typename APack , typename BPack > |
bool | haveSameProvider (APack const &a, BPack const &b) |
|
template<typename T > |
std::ostream & | operator<< (std::ostream &os, details::OptionalHexFloatFormatter< T > fmt) |
|
template<typename BeginIter , typename EndIter > |
auto | makeCollectionExtremes (BeginIter const &b, EndIter const &e) |
| Helper to create a CollectionExtremes object from two iterators. More...
|
|
template<typename Range > |
auto | makeCollectionExtremes (Range const &range) |
| Helper to create a CollectionExtremes object from a range object. More...
|
|
template<typename Range > |
CollectionView< Range > | makeCollectionView (Range &&) |
|
constexpr int | LowestSetBitScaler (unsigned long long int v, int b) |
| Internally used by LowestSetBit. More...
|
|
template<typename T > |
decltype(auto) | make_const_datarange_t (typename sparse_vector< T >::datarange_t &r) |
|
|
template<typename T > |
std::string | demangle () |
| Demangles the name of a type. More...
|
|
template<typename T > |
std::string | demangle (const T &) |
|
Namespace hiding implementation details.
template<typename T >
std::string lar::details::demangle |
( |
| ) |
|
Demangles the name of a type.
- Template Parameters
-
- Parameters
-
[anonymous] | parameter to determine the type |
- Returns
- a string with the demangled name
This function relies on GCC ABI; if there is no GCC, no demangling happens. One version of this function takes no parameters, and the type must be specified explicitly in the call. The other takes one parameter, that is not actually used but allows the compiler to understand which type to use. The following usese are equivalent:
std::vector<int> v;
std::cout << demangle<std::vector<int>>() << std::endl;
Definition at line 205 of file BulkAllocator.h.
206 std::string
name =
typeid(T).
name();
209 std::unique_ptr<char, void(*)(void*)> res
210 { abi::__cxa_demangle(name.c_str(), NULL, NULL, &status), std::free };
211 return (status==0) ? res.get() :
name ;
template<typename Derived , typename... Bases>
constexpr std::size_t lar::details::indexOfBaseOf |
( |
| ) |
|
Index of the class among Bases which is base of Derived.
- Template Parameters
-
Derived | the class to be found |
Bases | a list of classes candidate to be the base of Derived |
- Returns
- index of the class among Bases which is base of Derived
- Exceptions
-
static_assert | if multiple classes are base of Derived |
- See Also
- hasBaseOf(), findBaseOf()
If no class among Bases
is actually a base class of Derived
, an invalid index is returned, greater than any valid index (that is, no smaller than sizeof...(Bases)
).
Definition at line 575 of file ProviderPack.h.
576 {
return findTheMatching_impl<std::is_base_of, Derived, Bases...>(); }