如果函數模板返回decltype(auto)
(或使用auto
的另一個類型說明符),但返回語句不合格,那麼SFINAE的結果是什麼? return
聲明是否被認爲是函數簽名的直接上下文?SFINAE和decltype(自動)
N3690草案中沒有任何內容似乎需要這樣做。默認情況下,我猜SFINAE不適用。
這似乎是不幸的,因爲你可以寫一個函數來轉發到另一個函數,但是你不能在寫代碼的時候使它的存在有條件的在委託上。此外,由於this
不能在函數簽名中使用,因此檢查是否存在同位體非靜態成員函數是不可能的,因爲沒有decltype(auto)
。然而,這表明一個根本性問題,因爲decltype(auto)
提供了一種路徑來將類類型視爲在成員簽名中是完整的,如果不是。
是否有提案被寫入,或者有問題在任何地方進行過正式分析?
在會員簽名中將類類型視爲完整的能力可能會產生其他影響......但這只是另一個問題的佐證。
我一直在想這個。可悲的是,我也一直懶得遵循1y的建議...... – sehe
@MarkGarcia是的,這是一個給定的。我只是在問題的末尾添加了一個註釋;非模板成員可能仍然可能向暮光區打開一個蟲洞。 – Potatoswatter
如果在這個問題中有一些例子,那麼對於像我這樣的愚蠢來說就會更容易理解。 :) – iammilind