2017-05-25 73 views
3

我問這是因爲,儘管事實上稱號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

+0

[使用簡單類型說明符指定顯式類型轉換(函數表示法)]的可能副本(https://stackoverflow.com/questions/38977808/explicit-type-conversion-functional-notation-with-simple-type-說明符) – iehrlich

+0

'typedef'是一個不同的問題,因爲[它爲該類型創建了一個新名稱](https://stackoverflow.com/questions/14334317/does-typedef-in-cc-really-create-a-新型組合型複合型e)並不是簡單的文本替換。 'typedef unsigned int size_t;'與'#define size_t unsigned int'不完全相同。 –

回答

5

不,unsigned int不是簡單類型說明符。如果你讀了preceding paragraph你有

表11總結了有效組合簡單類型說明符和他們指定類型的

重點煤礦

因此,同時兼具unsignedintparagraph 1被列爲簡單類型說明符二者的結合是不是,但它是一個有效的類型。

+0

請參閱上面的我的編輯。 – Alexander

+0

因爲我堅信'unsigned int'是一個* simple-type-specifier * *,所以我必須將我的接受提交給您的答案。再次看我上面的編輯。 – Alexander

+0

@Alexander段落1明確列出了C++中存在的所有簡單類型說明符。 'unsigned int'不在其中。 – NathanOliver

相關問題