小编Ser*_* F.的帖子

为什么这对于g ++ 8是非恒定条件?

我有这个代码。这是std :: array我可以在编译时使用的数组(有点像)。在编译时也进行循环。

#include <utility>
#include <memory>
#include <type_traits>

template<class F,
         std::size_t ... Is>
constexpr void __loop(F&& func, std::index_sequence<Is ...>) noexcept
{
    (func(std::integral_constant<std::size_t, Is>{}), ...);
}

template<std::size_t N,
         typename F>
constexpr void CONSTEXPR_LOOP(F&& func) noexcept
{
    __loop(std::forward<F>(func), std::make_index_sequence<N>());
}

template<typename T, std::size_t Size>
class StaticArray
{
    static_assert(std::disjunction_v<
                        std::is_default_constructible<T>,
                        std::is_nothrow_default_constructible<T>
                    >,
                  "Type must have a trivial constructor.");
public:
    constexpr StaticArray() noexcept;
    template<typename ... Args,
             std::enable_if_t<
                 std::conjunction_v<
                     std::is_same<T, Args>...
                     >
                 > * = nullptr
             >
    constexpr StaticArray(Args && ... list) …
Run Code Online (Sandbox Code Playgroud)

c++ lambda templates g++ c++17

8
推荐指数
1
解决办法
268
查看次数

标签 统计

c++ ×1

c++17 ×1

g++ ×1

lambda ×1

templates ×1