給定一個模板C++函數C++ - 03:如何初始化模板化類型以清零POD數據或默認構建非POD數據?
template <typename data>
void example(data arg) {
// How to get POD zero initialized and non-POD, default constructor?
data x();
...
}
我如何可以零出一個模板參數,如果它是POD(例如int
得到了0
,float
得到一個0.0
等)或,非-POD,使用它的默認構造函數?
我看到類成員,這是因爲explained here處理有:
struct X
{
int x;
};
X x; //x.x is not initialized
X y = X(); //y.x is 0
但在這種情況下,變量是不是一類的一員,那麼你如何相應地得到初始化的這種效果POD類型變量和默認構造非POD類型變量?
您是否試圖清除'arg'(如'arg = 0;'爲某些特定類型),或試圖聲明一個與'arg'類型相同的變量,並對其進行值初始化?如果前者,那裏有什麼'x'?如果是後者,那裏有什麼'arg'? – hvd
[C++中POD類型的默認初始化]的可能的重複(http://stackoverflow.com/questions/15212261/default-initialization-of-pod-types-in-c) –
'data x = data();' –