在C++中多次聲明相同的using
別名是否合法?我有一個模板庫,其中一個頭文件用作'public' - 它包含所有的模板類聲明和別名,然後是'實現'文件(不是字面意義上的,它們包含模板類的定義)。公共頭文件包含所有實現頭文件。「使用」別名的C++多重定義
從實現文件中包含公共頭文件是不可能的,因爲這會導致循環依賴。不過,我想使用實現文件中的頭文件中聲明的模板別名。
例子:
'公' 頭:
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中適用於我,但是當我試圖以相同的方式使用更復雜的別名時,編譯器抱怨道。
你能否提供一個「更復雜的別名」和你的編譯器提供的確切投訴的例子? – kdelaney
請提供[mcve]的實際問題代碼。 – Barry