簡體   English   中英

傳遞2D數組作為參數

[英]Passing a 2D array as an argument

關於使用以2D數組為參數的構造函數的語法,我遇到一些問題。 這是一個這樣的構造函數的示例:

template <class T>
Node<T>::Node(T d[4][4]) : data(d) {}    

我正在嘗試按以下方式使用它:

float f[4][4] = { { /* 2D array declaration */ } };
Node<float> myNode = Matrix4x4<float>((f));

我遇到以下錯誤,經過反復搜索后,我仍無法找出問題的根本原因:

error: no matching constructor for
      initialization of 'Node<float>'
      Node<float> myNode = Node<float>((f));
                   ^     ~~~~~~~~~~~~~~~~~~~~~
src/Node.h:33:5: note: candidate constructor not viable:
      no known conversion from 'Node<float>' to
      'float (*)[4]' for 1st argument
      Node(T d[4][4]);

顯然, no known conversion from 'Node<float>' to 'float (*)[4]' for 1st argument ”這一行是一個大提示,但是我仍然堅持為什么clang ++會將f解釋為float (*)[4]而不是float[4][4]

任何幫助深表感謝。

語法是

void f(T (&d)[4][4])

但更喜歡可復制的std::array<std::array<T, 4>, 4>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM