ccpformatを使ってみる


概要

cocos2d-xでcppformatを使用してみる。

環境

  • Mac OS X Yosemite 10.10.2
  • cocos2d-x v3.4

準備

ダウンロード

こちらから取得する。

$ git clone https://github.com/cppformat/cppformat

使用するファイルは以下。

cppformat
|- format.cc
`- format.h

配置

extenralにファイルを追加する。

cocos2d/external/cppformat/
|- Android.mk
|- format.cc
`- format.h

Android.mkはこちら

iOS設定

以下のファイルをプロジェクトに追加する。

cocos2d/external/cppformat/
|- format.cc
`- format.h

以下のようなエラーが出る場合がある。

ld: symbol(s) not found for architecture x86_64

追加したファイルの Target Membership に以下が含まれていなかったため発生。

  • libcocos2d iOS

Xcodeに追加した2つのファイルの Target Membership を正しいか確認しよう。

Android設定

proj.android/jni/Android.mk

に以下を追加して、こちらのようにする。

Android.mk
LOCAL_STATIC_LIBRARIES += cppformat_static
$(call import-module,cppformat)

使う

#include "cppformat/format.h"
std::string s = fmt::format("{0}, {1}", 10, 20);

指定方法

format_spec ::=  [[fill]align][sign]["#"]["0"][width]["." precision][type]
fill        ::=  <a character other than '{' or '}'>
align       ::=  "<" | ">" | "=" | "^"
sign        ::=  "+" | "-" | " "
width       ::=  integer
precision   ::=  integer | "{" arg_index "}"
type        ::=  int_type | "c" | "e" | "E" | "f" | "F" | "g" | "G" | "p" | "s"
int_type    ::=  "b" | "B" | "d" | "o" | "x" | "X"