動作環境
C++ Builder XE4
SimpleRoundTo()
System.Math.hpp
をインクルードすることで使えるSimpleRoundTo()
XE4: DateUtils.hppインクルードでエラーが出ない
Unit1.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <DateUtils.hpp>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int val = SimpleRoundTo(1.5);
}
//---------------------------------------------------------------------------
上記のように「System.Math.hpp」ではなく「DateUtils.hpp」インクルードにてXE4ではエラーが出ていなかった。
System.DateUtils.hppに以下がある。
#include <System.Math.hpp> // Pascal unit
10.2 Tokyo: 明示的なSystem.Math.hppインクルードが必要
10.2 Tokyoでは同じコードはエラーになるようだ。
確認したところ、System.DateUtils.hppにはSystem.Math.hppのインクルード行はなくなっている。
System.Math.hppを明示的にインクルードしないといけない。
(本来、関数を使う時点でインクルードをすべきであったが、XE4ではエラーが出なかったこともあり、明示的にインクルードをしていなかった)