gpt4 book ai didi

c++ - 有没有办法帮助编译器处理复杂的参数推导?

转载 作者:行者123 更新时间:2023-11-30 05:10:54 26 4
gpt4 key购买 nike

<分区>

我正在尝试构建编译时间表。我使用数组的数组......来做到这一点。不幸的是,编译器无法推断出结果类型的模板参数。有变通办法吗?

#include <array>

template <typename T, size_t... dims>
struct variadic_array;

template <typename T, size_t... dims>
using variadic_array_t = typename variadic_array<T, dims...>::type;

template <typename T, size_t dim>
struct variadic_array<T, dim> {
using type = std::array<T, dim>;
};

template <typename T, size_t dim, size_t ...dims>
struct variadic_array<T, dim, dims...> {
using type = std::array<variadic_array_t<T, dims...>, dim>;
};

template <typename T, size_t ...dims>
void foo(variadic_array_t<T, dims...>) {}

void call_foo() {
foo(variadic_array_t<int, 3, 4>{});
}

编译错误:

error: no matching function for call to 'foo'
foo(variadic_array_t<int, 3, 4>{});
^~~
note: candidate template ignored: couldn't infer template argument 'T'
void foo(variadic_array_t<T, dims...>) {}
^

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com