相关疑难解决方法(0)

C++ 17类模板部分演绎

我对类模板提议的模板参数推导的理解是在演绎上下文中使模板函数和模板类的行为同质化.但我认为我误解了一些事情.

如果我们有这个模板对象:

template <std::size_t S, typename T>
struct test
{
    static constexpr auto size = S;
    using type_t = T;

    test(type_t (&input)[size]) : data(input) {}
    type_t (&data)[size]{};
};
Run Code Online (Sandbox Code Playgroud)

我倾向于使用辅助函数作为创建对象的语法糖test:

template <std::size_t S, typename T>
test<S, T> helper(T (&input)[S]) { return input; }
Run Code Online (Sandbox Code Playgroud)

可以使用如下所示:

int main()
{
    int buffer[5];

    auto a = helper<5, int>(buffer); // No deduction
    auto b = helper<5>(buffer);      // Type deduced
    auto c = helper(buffer);         // Type and size deduced

    std::cout …
Run Code Online (Sandbox Code Playgroud)

c++ templates c++17

25
推荐指数
2
解决办法
1413
查看次数

标签 统计

c++ ×1

c++17 ×1

templates ×1