[英]C++ multiple definitions of 'using' alias
在C ++中using
別名多次聲明相同是否合法? 我有一個模板庫,其中一個頭文件用作'public' - 它包含所有模板類聲明和別名,然后是'implementation'文件(不是字面意義上的,它們包含模板類的定義)。 公共頭文件包括其末尾的所有實現頭。
不可能在實現文件中包含公共頭,因為這會導致循環依賴。 但是,我想在實現文件中使用頭文件中聲明的模板別名。
例:
'public'標題:
using true_type = logical_constant<true>;
using false_type = logical_constant<false>;
'私人'實施文件:
using true_type = logical_constant<true>;
using false_type = logical_constant<false>;
只要兩個使用別名別名相同的東西,這是合法的嗎? 這個簡單的例子在MSVC 14中對我有用,但是當我嘗試以相同的方式使用更復雜的別名時,編譯器抱怨道。
在C ++中使用別名多次聲明相同是否合法?
是的,這是合法的。
using ... = ...;
的別名聲明 using ... = ...;
語法是聲明typedef
的更有趣的方式。 因此,只要它們不將別名聲明為不同類型,就可以毫無問題地重復它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.