+ inline void writeInt(T n) {
+ separator();
+ os << std::dec << n;
+ value = true;
+ space = ' ';
+ }
+ template<class T>
+ inline void writeFloat(T n) {
+ separator();
+ if (isnan(n)) {
+ // NaN is non-standard but widely supported
+ os << "NaN";
+ } else if (!isfinite(n)) {
+ // Infinite is non-standard but widely supported
+ if (n < 0) {
+ os << '-';
+ }
+ os << "Infinity";