0
對於算術類型T
,可以有一個包含轉換操作符類:類型的轉換運算符?
template <typename T>
class Value
{
constexpr operator T() const;
};
這是operator
適用於所有類型的(作爲一個例子,是工作T = std::vector<double>
?),如果沒有,對什麼類型的確實它的工作?
對於算術類型T
,可以有一個包含轉換操作符類:類型的轉換運算符?
template <typename T>
class Value
{
constexpr operator T() const;
};
這是operator
適用於所有類型的(作爲一個例子,是工作T = std::vector<double>
?),如果沒有,對什麼類型的確實它的工作?
一種類型是一種類型:您可以使用內置類型 來做很少的事情,而不是使用定義好的用戶 定義的類型。在這種情況下,關於唯一真正的要求是 該類型是可複製的(並且在實現中您有一些 構造它)。
而且順便說一句,我認爲你的意思:
class Value
{
template <typename T>
constexpr operator T() const;
};
(但對於很多類型,它不會真的可以作爲一個 const
,constexpr
或無)。
您是否嘗試過不同的'T'值?結果是什麼? –
請注意,轉換運算符只定義爲*與您的類實例相同的* T。舉例來說,一個'Value'具有'int'的轉換運算符,僅此而已。 –
leemes
我認爲它應該適用於任何'T',也許有些情況下你不能期望隱式轉換被執行(例如縮小初始化列表中的轉換次數),但這並不是因爲任何特殊的目標類型本身。所以總而言之,我很想回答「是」,但我腦海中1%的懷疑阻止了我這樣做。哦,'std :: inizialier_list'可能不符合條件的'T' –