簡體   English   中英

如何將返回類型聲明為模板typename的內部類?

[英]How declare return type as inner class of template typename?

如何聲明:

template<typename T>
(T::ABC)& get();

它給出了錯誤:

error: expected constructor, destructor, or type conversion before ‘&’ token

正確的形式沒有括號

typename T::ABC

因為帶括號的形式

(typename T::ABC)

是強制轉換運算符,而不是類型!

此外,關鍵字typename是必需的,因為T:ABC是“從屬類型”:如果不使用typename ,則將表達式T:ABC解釋為好像ABC是類T的成員,而不是嵌套類型) 。

使用typename關鍵字:

template<typename T>
typename T::ABC& get();

它一定要是:

template<typename T>
typename T::ABC& get();

但我試過了,這不起作用:

template<typename T>
(typename T::ABC)& get();

暫無
暫無

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

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