MAJ terminée. Nous sommes passés en version 14.6.2 . Pour consulter les "releases notes" associées c'est ici :

https://about.gitlab.com/releases/2022/01/11/security-release-gitlab-14-6-2-released/
https://about.gitlab.com/releases/2022/01/04/gitlab-14-6-1-released/

Commit 6214f1aa authored by Quentin Khan's avatar Quentin Khan
Browse files

variadic_container: work around Doxygen template poor support

parent 3e116631
......@@ -2,78 +2,9 @@
#ifndef FBASIC_PARTICLE_HPP
#define FBASIC_PARTICLE_HPP
#include <cstddef>
#include <tuple>
#include "Utils/FIntegerSequence.hpp"
#include "Utils/FPoint.hpp"
namespace scalfmm {
template<std::size_t I, typename T>
struct pack {
enum {size = I};
using type = T;
};
namespace details {
template<
template<class...> class Final,
typename ExpandedTuple,
typename... ToExpand
>
struct pack_expand_impl;
template<
template<class...> class Final,
typename... Expanded
>
struct pack_expand_impl<Final, std::tuple<Expanded...> > {
using type = Final<Expanded...>;
};
template<
template<class...> class Final,
typename T,
typename... Args,
typename... Expanded
>
struct pack_expand_impl<Final, std::tuple<Expanded...>, pack<0, T>, Args...> {
using type = typename pack_expand_impl<Final, std::tuple<Expanded...>, Args...>::type;
};
template<
template<class...> class Final,
std::size_t count,
typename T,
typename... Args,
typename... Expanded
>
struct pack_expand_impl<Final, std::tuple<Expanded...>, pack<count, T>, Args...> {
using type = typename pack_expand_impl<Final, std::tuple<Expanded..., T>, pack<count-1, T>, Args...>::type;
};
template<
template<class...> class Final,
typename T,
typename... Args,
typename... Expanded
>
struct pack_expand_impl<Final, std::tuple<Expanded...>, T, Args...> {
using type = typename pack_expand_impl<Final, std::tuple<Expanded..., T>, Args...>::type;
};
}
template<template <class...> class VariadicType, typename... TypePacks>
using pack_expand = typename details::pack_expand_impl<VariadicType, std::tuple<>, TypePacks...>::type;
template<typename... TypePacks>
using pack_expand_tuple = pack_expand<std::tuple, TypePacks...>;
}
#include "Utils/FTypePack.hpp"
template<typename _FReal, std::size_t _Dim = 3, typename... Types>
......
#ifndef FTYPEPACK_HPP
#define FTYPEPACK_HPP
#include <tuple>
namespace scalfmm {
template<std::size_t I, typename T>
struct pack {
enum {size = I};
using type = T;
};
namespace details {
template<
template<class...> class Final,
typename ExpandedTuple,
typename... ToExpand
>
struct pack_expand_impl;
template<
template<class...> class Final,
typename... Expanded
>
struct pack_expand_impl<Final, std::tuple<Expanded...> > {
using type = Final<Expanded...>;
};
template<
template<class...> class Final,
typename T,
typename... Args,
typename... Expanded
>
struct pack_expand_impl<Final, std::tuple<Expanded...>, pack<0, T>, Args...> {
using type = typename pack_expand_impl<Final, std::tuple<Expanded...>, Args...>::type;
};
template<
template<class...> class Final,
std::size_t count,
typename T,
typename... Args,
typename... Expanded
>
struct pack_expand_impl<Final, std::tuple<Expanded...>, pack<count, T>, Args...> {
using type = typename pack_expand_impl<Final, std::tuple<Expanded..., T>, pack<count-1, T>, Args...>::type;
};
template<
template<class...> class Final,
typename T,
typename... Args,
typename... Expanded
>
struct pack_expand_impl<Final, std::tuple<Expanded...>, T, Args...> {
using type = typename pack_expand_impl<Final, std::tuple<Expanded..., T>, Args...>::type;
};
}
template<template <class...> class VariadicType, typename... TypePacks>
using pack_expand = typename details::pack_expand_impl<VariadicType, std::tuple<>, TypePacks...>::type;
template<typename... TypePacks>
using pack_expand_tuple = pack_expand<std::tuple, TypePacks...>;
}
#endif /* FTYPEPACK_HPP */
......@@ -1403,9 +1403,18 @@ public:
using type = decltype(get_type(std::declval<std::tuple<Types...>>(), std::make_index_sequence<sizeof...(Types)>()));
};
/** \brief Variadic vector type */
/** \brief Variadic vector type
*
* \tparam Allocator Allocator type to use
* \tparam Types Parameter pack for type to store
*/
template<typename Allocator, typename... Types>
struct variadic_vector : public variadic_vector_type<Allocator, Types...>::type
struct variadic_vector :
#ifndef DOXYGEN_DOC
public variadic_vector_type<Allocator, Types...>::type
#else
public variadic_vector_impl<Allocator, std::tuple<Types...>, std::index_sequence<Indices...> >
#endif
{};
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment