我問這是因爲,儘管事實上稱號Table 11是簡單類型說明符,它們指定的類型,語法生產simple-type-specifier沒有提及這種類型的組合,作爲簡單類型說明符。那麼unsigned int
是一個簡單類型說明符?是unsigned int的一個'簡單型specifier`
編輯:
我不認爲給予
aforementioned question的答案是正確的。如果這是真的,一個不能夠說,聲明
。
void* operator new(std::size_t);
是
聲明在
[dcl.dcl]/1定義,如
size_t
是定義
typedef
(在我的系統)作爲
unsigned int
。爲了證明這一說法,即,
void* operator new(std::size_t);
是
聲明,我幾乎可以肯定,我們所需要的事實,即
unsigned int
是一個
簡單類型說明符。
我錯了。如果我們使用
類型名稱的定義
[dcl.type.simple]/1
,說明void* operator new(std::size_t);
是聲明沒有問題。我認爲我第一次是對的,除了錯誤的例子。也就是說,我相信unsigned int
必須是 a simple-type-specifier,否則就不能說void f(unsigned int);
是declaration。
。
[使用簡單類型說明符指定顯式類型轉換(函數表示法)]的可能副本(https://stackoverflow.com/questions/38977808/explicit-type-conversion-functional-notation-with-simple-type-說明符) – iehrlich
'typedef'是一個不同的問題,因爲[它爲該類型創建了一個新名稱](https://stackoverflow.com/questions/14334317/does-typedef-in-cc-really-create-a-新型組合型複合型e)並不是簡單的文本替換。 'typedef unsigned int size_t;'與'#define size_t unsigned int'不完全相同。 –