2010-08-24 103 views
3

下面的聲明怎麼能用const來表示(沒有typedef)?C++ const引用聲明

double* const (&data)[6] 
// ?? const double* (&data)[6] // incorrect, elements, not reference, are const 

謝謝

+0

沒有什麼叫做const引用。它總是引用一個常量,大部分是人們參考 – Chubsdad 2010-08-24 03:35:01

+0

把恆星放在恆星後面是什麼使得指針是'常量'而不是指向的東西。你不能把它放在第一位,這意味着你似乎希望它的意思。這就是說,我非常強烈地懷疑這個聲明顯然是錯誤的。對可變雙精度常量指針的引用數組?那真的是你想要的嗎? – zwol 2010-08-24 03:58:43

+0

@Zack非常量指針引用的常量數組,是 – Anycorn 2010-08-24 04:05:44

回答

1

你不能做到這一點。

根據C++標準8.3.2/1:當cv修飾符通過使用一個typedef(7.1.3)的引入

CV-合格引用是形成不良的,除了 或的模板類型參數 (14.3),在這種情況下,cv限定符將被忽略。

+1

「Cv-qualified references」 - 在問題中有一個示例行的代碼和註釋掉的不同代碼的樣本行,這兩個代碼都不會嘗試創建一個cv限定的引用。當然,你的答案的第一行是正確的,但我不知道你爲什麼跟着其他東西。 – 2010-08-24 04:27:31

+0

據我所知,他試圖獲得const限定參考。 – 2010-08-24 04:33:17

+0

哦,我看到,註釋掉的代碼行中的其他評論。你是對的,你從標準的引用回答那部分。不知何故,從這個問題,有效的代碼行,以及註釋掉的代碼行中的代碼,我沒有弄清楚他想要的是什麼。 – 2010-08-24 04:36:12