C++界隈では、最新のドラフトでコンセプトが導入され標準ライブラリ総書き換えと騒がしい感じがしますが、そんな世間には構いもせず地味な話をします。

Visual C++ 2008で、std::tr1::と打つと、インテリセンス(入力候補の表示)がhexfloatと候補に出してきます。というわけで、軽く試してみました。

予想通り、これは浮動小数点数を十六進表示する指定のマニピュレータでした。TR1にそういえば載っていた気がします。

hexfloatが定義されているヘッダ<ios>を見てみましたが、やはり//TR1とコメントがありました。

#include <iostream>
#include <cstdio>
 
int main()
{
	double x;
	std::cout << "Input number> " << std::flush;
	std::cin >> x;
	std::cout << x << '\n';
	std::cout << std::tr1::hexfloat << x << " : hexfloat" << std::endl;
	std::printf("%a : %%a\\n", x);
}

printfの%aもやはり浮動小数点数の十六進変換で、こちらはC99です。VC++には2005から入っています。ちなみに、AB5でもSPrintfで%aが使えます。

おっと、ここまで書きあげてから、hexfloatでググったら、先駆者を見つけてしまいました: TR1のカケラ – Faith and Brave – C++で遊ぼう。こんなぽつんとした機能、良くも悪くも目に留まりますよね。


スポンサード リンク

この記事のカテゴリ

  • ⇒ hexfloat@TR1
  • ⇒ hexfloat@TR1