etrobocon2019 feat.KatLab  ece30a9a007fff7d3ad48592c0d09a74643377bb
公開メンバ関数 | 全メンバ一覧
LogFile::TemporaryObject クラス

#include <Logger.h>

LogFile::TemporaryObject 連携図
Collaboration graph

公開メンバ関数

 TemporaryObject (FILE *fp_)
 
 ~TemporaryObject ()
 行末に改行を挿入する [詳解]
 
void putDelimiter ()
 データの先頭にデリミタ―を挿入する [詳解]
 
template<typename T , typename std::enable_if< std::is_integral< T >::value, std::nullptr_t >::type = nullptr>
TemporaryObjectoperator<< (T intValue)
 整数型のデータを出力ファイルに書き込む Usage: foo << 1 << 2 << 3; (自動的にデリミターと改行が挿入される) [詳解]
 
template<typename T , typename std::enable_if< std::is_floating_point< T >::value, std::nullptr_t >::type = nullptr>
TemporaryObjectoperator<< (T floatingPointValue)
 浮動小数点数型のデータを出力ファイルに書き込む Usage: foo << 1.2 << 2.4 << 3.98; (自動的にデリミターと改行が挿入される) [詳解]
 
template<typename T , typename std::enable_if< std::is_same< T, const char *>::value >::type * = nullptr>
TemporaryObjectoperator<< (T stringLiteral)
 文字列を出力ファイルに書き込む Usage: foo << "aa" << "bb" (自動的にデリミターと改行が挿入される) [詳解]
 

詳解

Logger.h15 行目に定義があります。

構築子と解体子

◆ TemporaryObject()

LogFile::TemporaryObject::TemporaryObject ( FILE *  fp_)

Logger.cpp8 行目に定義があります。

8 : fp(fp_), isHead(true) {}

◆ ~TemporaryObject()

LogFile::TemporaryObject::~TemporaryObject ( )

行末に改行を挿入する

Logger.cpp10 行目に定義があります。

11 {
12  std::fputc('\n', fp);
13 }

関数詳解

◆ operator<<() [1/3]

template<typename T , typename std::enable_if< std::is_integral< T >::value, std::nullptr_t >::type = nullptr>
TemporaryObject& LogFile::TemporaryObject::operator<< ( intValue)
inline

整数型のデータを出力ファイルに書き込む Usage: foo << 1 << 2 << 3; (自動的にデリミターと改行が挿入される)

引数
intValue[整数型(int, unsigned int, std::int8_t, etc...)]

Logger.h39 行目に定義があります。

40  {
41  putDelimiter();
42  fprintf(fp, "%d", intValue);
43  return *this;
44  }
void putDelimiter()
データの先頭にデリミタ―を挿入する
Definition: Logger.cpp:15
呼び出し関係図:

◆ operator<<() [2/3]

template<typename T , typename std::enable_if< std::is_floating_point< T >::value, std::nullptr_t >::type = nullptr>
TemporaryObject& LogFile::TemporaryObject::operator<< ( floatingPointValue)
inline

浮動小数点数型のデータを出力ファイルに書き込む Usage: foo << 1.2 << 2.4 << 3.98; (自動的にデリミターと改行が挿入される)

引数
floatingPointValue[浮動小数点数型(float, double)]

Logger.h54 行目に定義があります。

55  {
56  putDelimiter();
57  fprintf(fp, "%f", floatingPointValue);
58  return *this;
59  }
void putDelimiter()
データの先頭にデリミタ―を挿入する
Definition: Logger.cpp:15
呼び出し関係図:

◆ operator<<() [3/3]

template<typename T , typename std::enable_if< std::is_same< T, const char *>::value >::type * = nullptr>
TemporaryObject& LogFile::TemporaryObject::operator<< ( stringLiteral)
inline

文字列を出力ファイルに書き込む Usage: foo << "aa" << "bb" (自動的にデリミターと改行が挿入される)

引数
stringLiteral[文字列型(const char*)]

Logger.h68 行目に定義があります。

69  {
70  putDelimiter();
71  fprintf(fp, "%s", stringLiteral);
72  return *this;
73  }
void putDelimiter()
データの先頭にデリミタ―を挿入する
Definition: Logger.cpp:15
呼び出し関係図:

◆ putDelimiter()

void LogFile::TemporaryObject::putDelimiter ( )

データの先頭にデリミタ―を挿入する

覚え書き
行頭の場合は、デリミタ―は挿入されない

Logger.cpp15 行目に定義があります。

16 {
17  // ファイルの先頭のときは、デリミタ―を挿入しない
18  if(isHead) {
19  isHead = false;
20  return;
21  }
22  // コンマを挿入する
23  std::fputc(',', fp);
24 }
被呼び出し関係図:

このクラス詳解は次のファイルから抽出されました: