手元に32ビット版FreeBSD(time_t==int)の環境が無いのでCygwin(time_t==longなのでちょっと違う)でしか確認していませんが、テストコード以外で「const enum type new_type」を省略している所は無さそうですので、Variantクラスのコンストラクターの修正だけでビルドできると思います。 ビルドが成功したら「make test」を実行してみて、全テストケースをパスしたら動くかもしれません。
src/Variant.h | 2 +- test/variant_cast.t.cpp | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Variant.h b/src/Variant.h index 6780ace..b49f313 100644 --- a/src/Variant.h +++ b/src/Variant.h @@ -49,7 +49,7 @@ public: Variant (const double); Variant (const std::string&); Variant (const char*); - Variant (const time_t, const enum type new_type = type_date); + Variant (const time_t, const enum type new_type); ~Variant (); void source (const std::string&); diff --git a/test/variant_cast.t.cpp b/test/variant_cast.t.cpp index 63430b0..9799c9d 100644 --- a/test/variant_cast.t.cpp +++ b/test/variant_cast.t.cpp @@ -176,24 +176,24 @@ int main (int argc, char** argv) t.is (v35b.get_duration (), 3628800, "cast string --> duration"); // Variant::type_date --> * - Variant v40 ((time_t) 1234567890); + Variant v40 ((time_t) 1234567890, Variant::type_date); v40.cast (Variant::type_boolean); t.ok (v40.type () == Variant::type_boolean, "cast date --> boolean"); t.ok (v40.get_bool () == true, "cast date --> boolean"); - Variant v41 ((time_t) 1234567890); + Variant v41 ((time_t) 1234567890, Variant::type_date); v41.cast (Variant::type_integer); t.ok (v41.type () == Variant::type_integer, "cast date --> integer"); t.ok (v41.get_integer () == 1234567890, "cast date --> integer"); - Variant v42 ((time_t) 1234567890); + Variant v42 ((time_t) 1234567890, Variant::type_date); v42.cast (Variant::type_real); t.ok (v42.type () == Variant::type_real, "cast date --> real"); t.is (v42.get_real (), 1234567890.0, EPSILON, "cast date --> real"); // YYYY-MM-DDThh:mm:ss // ^ ^ ^ ^ ^ - Variant v43 ((time_t) 1234567890); + Variant v43 ((time_t) 1234567890, Variant::type_date); v43.cast (Variant::type_string); t.ok (v43.type () == Variant::type_string, "cast date --> string"); std::string s = v43.get_string (); @@ -204,12 +204,12 @@ int main (int argc, char** argv) t.is ((int)s[16], (int)':', "cast date --> string"); t.is ((int)s.length (), 19, "cast date --> string"); - Variant v44 ((time_t) 1234567890); + Variant v44 ((time_t) 1234567890, Variant::type_date); v44.cast (Variant::type_date); t.ok (v44.type () == Variant::type_date, "cast date --> date"); t.ok (v44.get_date () == 1234567890, "cast date --> date"); - Variant v45 ((time_t) 1234567890); + Variant v45 ((time_t) 1234567890, Variant::type_date); v45.cast (Variant::type_duration); t.ok (v45.type () == Variant::type_duration, "cast date --> duration"); t.ok (v45.get_duration () == 1234567890, "cast date --> duration"); 2015年4月8日 17:32 User Ribbon <rib...@ns.ribbon.or.jp>: > FreeBSD32ビット環境だと、上記のようにVariantの定義が重複して > うまくない、ということなのですね。 > > ただ、この先どうするかはC++が分かっていないので、ちょっと手の出しようがないです。 > ですので、とりあえずはあきらめることにします。 -- pegacorn _______________________________________________ freebsd-users-jp@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org"