通过r值发送静态数组并复制

时间:2018-09-27 13:59:53

标签: c++

我对c ++有一个小问题

我正在做一些测试,以通过r值将静态数组发送到某些函数。 和分配给新阵列

确保,逐个使用或复制所有元素是一种解决方案 但还有其他方法吗?

感谢阅读!

#include <iostream>
using namespace std;

template <class T>
class TD;

template <typename T, int N>
void func(T (&&B)[N]) {
    decltype(auto) C = B;

    // now, type of array B is 'int (&&)[10]'
    // now, type of array C is 'int (&)[10]'

    // activate if you wanna know type of B and C
    // TD<decltype(B)> bType;
    // TD<decltype(C)> cType;

    B[4] = 1;
    C[5] = 2;

    printf("B[10] : ");
    for (int i = 0; i < 10; ++i) {
        printf("%d ", B[i]);
    } printf("\n");
}

int main(void) {
    int A[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

    printf("A[10] : ");
    for (int i = 0; i < 10; ++i) {
        printf("%d ", A[i]);
    } printf("\n");

    func(move(A));

    printf("A[10] : ");
    for (int i = 0; i < 10; ++i) {
        printf("%d ", A[i]);
    } printf("\n");

    return 0;
}

0 个答案:

没有答案