(我似乎無法爲此範例找到名稱,但如果可以的話,您將獲得獎勵upvote!)此模板範例用於防止數組衰減到指針:使用返回數組模板參數
template <size_t N>
void foo(const char (&bar) [N]);
我們都能夠使用N
在foo
的身體得到規模過bar
。鑑於const char array[] = "lorem ipsum"
,我們使用此呼叫foo(array)
來將bar
定義爲const char (&) [12]
,其有效地傳遞2個參數用於一個的價格。
我想用這個同樣的想法,但在返回,例如:
template <size_t N>
const char (&) [N] foo(const char (&bar) [N]);
,這樣我就可以通過此陣列,並有另一個引用它,比如:auto result = foo(bar)
我這裏的代碼產生錯誤:
unrecognizable template declaration/definition
這可能嗎?
編輯:
爲了澄清,我希望能夠有一個函數返回,這將導致相當於:
auto& result = bar;
這樣result
將是一個const char (&) [*]
,其中*
是尺寸爲bar
。
它被稱爲「通過參考」:-) –
@KerrekSB嗯......我希望有些更奇特的東西,但我想它是:J –