繁体   English   中英

在数组函数模板标头中使用 std::size_t (C++)

[英]Use of std::size_t in array function template header (C++)

在这段代码中:

#include <cstddef>
#include <array>
#include <iostream>

//                       here
template <typename T, std::size_t size>
void printArray(const std::array<T, size>& myArray) {
    for (auto element : myArray)
        std::cout << element << ' ';
    std::cout << '\n';
}

int main() {
    std::array myArray1{ 9.0, 7.2, 5.4, 3.6, 1.8 };
    
    printArray(myArray1);
    // shouldn't this line be
    printArray<double, 5>(myArray1)

    return 0;
}

我了解模板和函数的工作原理,但我不明白第 16 行将std::size_t传入的位置。我知道模板会推导出类型。 它也会自动传入数组大小吗?

我知道模板会推断类型。 它也会自动传入数组大小吗?

是的,模板非类型参数size的值将从函数参数的类型推导出来,与推导出模板类型参数T相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM