X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fvalue.h;h=ba6118181260c1c92c2a53f8f885507914a4d759;hb=refs%2Fheads%2Fwip;hp=c272bcf81dc57b34e9e87f66112a997691aec282;hpb=f19f861eb6858f396d574f0d45c5e967221a384b;p=libs%2Fdatafile.git diff --git a/source/value.h b/source/value.h index c272bcf..ba61181 100644 --- a/source/value.h +++ b/source/value.h @@ -2,6 +2,7 @@ #define MSP_DATAFILE_VALUE_H_ #include +#include #include #include #include @@ -18,12 +19,13 @@ private: public: template - Value(T d): + Value(T &&d, typename std::enable_if::type, Value>::value, int>::type = 0): sig(TypeInfo::signature), - data(static_cast::Store>(d)) + data(static_cast::Store>(std::forward(d))) { } - Value(Symbol d): sig(TypeInfo::signature), data(d) { } + Value(const Symbol &d): sig(TypeInfo::signature), data(d) { } + Value(Symbol &&d): sig(TypeInfo::signature), data(std::move(d)) { } template typename TypeInfo::Load get() const