名前空間
変種
操作

std::numeric_limits<T>::quiet_NaN

提供: cppreference.com
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ(C++20)
(C++11)
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)
スワップと型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
一般的な語彙の型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等文字列変換
(C++17)
(C++17)
 
型サポート
型の性質
(C++11)
(C++11)
(C++14)
(C++11)
(C++11)(C++20未満)
(C++11)(C++20で非推奨)
(C++11)
型特性定数
メタ関数
(C++17)
定数評価文脈
サポートされている操作
関係と性質の問い合わせ
型変更
型変換
(C++11)
(C++11)
(C++17)
(C++11)(C++20未満)(C++17)
 
 
static T quiet_NaN()throw();
(C++11未満)
staticconstexpr T quiet_NaN()noexcept;
(C++11以上)

浮動小数点型 T によって表現される特殊な値「quiet NaN」を返します。 std::numeric_limits<T>::has_quiet_NaN==true の場合にのみ意味があります。 IEEE 754 (浮動小数点数の最も一般的な2進表現) では、指数部のすべてのビットがセットされ、仮数部の少なくともひとつのビットがセットされたあらゆる値が NaN です。 仮数部のどの値が quiet NaN や signalilng NaN を表すか、および符号ビットが意味を持つかどうかは処理系定義です。

目次

[編集]戻り値

Tstd::numeric_limits<T>::quiet_NaN()
/* 非特殊化 */ T()
boolfalse
char0
signedchar0
unsignedchar0
wchar_t0
char8_t0
char16_t0
char32_t0
short0
unsignedshort0
int0
unsignedint0
long0
unsignedlong0
longlong0
unsignedlonglong0
floatNAN または処理系定義の別の NaN
double 処理系定義
longdouble 処理系定義

[編集]ノート

NaN はそれ自身と比較しても等しくなりません。 NaN のコピーはそのビット表現を維持しないかもしれません。

[編集]

NaN を生成するいくつかの方法 (出力の文字列はコンパイラ固有です)。

#include <iostream>#include <limits>#include <cmath>   int main(){std::cout<<std::numeric_limits<double>::quiet_NaN()<<' '<<std::numeric_limits<double>::signaling_NaN()<<' '<<std::acos(2)<<' '<<std::tgamma(-1)<<' '<<std::log(-1)<<' '<<std::sqrt(-1)<<' '<<0/0.0<<'\n';   std::cout<<"NaN == NaN? "<<std::boolalpha<<(std::numeric_limits<double>::quiet_NaN()==std::numeric_limits<double>::quiet_NaN())<<'\n';}

出力例:

nan nan nan nan nan -nan -nan NaN == NaN? false

[編集]関連項目

特殊な値「quiet NaN」を表現可能な浮動小数点型を識別します
(パブリック静的メンバ定数)[edit]
指定された浮動小数点型の signaling NaN の値を返します
(パブリック静的メンバ関数)[edit]
(C++11)(C++11)(C++11)
NaN (非数) を返します
(関数)[edit]
(C++11)
指定された数値が NaN かどうか調べます
(関数)[edit]
close