2015-02-15 4 views
2

Как проверить пуст boost :: acculators acc или нет?Использование пустого бустера :: аккумуляторы

Например:

if (acc.isEmpty())//I don't know what function here 
return 0; 
else 
return boost::accumulators::mean(acc). 

Потому что, если он пустой, я получаю NaN для наддува :: аккумуляторов :: среднее (согласно).

+0

на некоторых платформах нан может быть сигнализации (я "м не уверен, что стандарт указывает это) – sehe

ответ

3

Вы можете использовать аккумулятор count:

if (boost::accumulators::count(acc) == 0)//I don't know what function here 
return 0; 
else 
return boost::accumulators::mean(acc); 

В качестве альтернативы, вы можете просто проверить, если это nan по телефону std::isnan:

if(std::isnan(boost::accumulators::mean(acc)) 
    return 0; 
else 
    return boost::accumulators::mean(acc); 
+0

Спасибо за ответ! – ekaterina