From: Sarang Masti <mssarang@fb.com> Date: Sat, 20 Dec 2014 00:44:37 +0000 (-0800) Subject: Allow conversion from StringPiece to StringPiece X-Git-Tag: v0.22.0~77 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=5219f0705c87b87e07f87efe726a78082b24d40e;p=folly.git Allow conversion from StringPiece to StringPiece Summary: Allow conversion from folly::StringPiece to folly::StringPiece Test Plan: - fbconfig -r folly && fbmake runtests Reviewed By: mpawlowski@fb.com Subscribers: folly-diffs@ FB internal diff: D1752609 Signature: t1:1752609:1419037172:04846f658901306b53fb60c9eafbdf0f4d4d7005 --- diff --git a/folly/Conv.h b/folly/Conv.h index c90b4c03..def3d872 100644 --- a/folly/Conv.h +++ b/folly/Conv.h @@ -820,14 +820,15 @@ template <class De, class Ts> void toAppendDelimFit(const De&, const Ts&) {} /** - * to<SomeString>(SomeString str) returns itself. As both std::string and - * folly::fbstring use Copy-on-Write, it's much more efficient by - * avoiding copying the underlying char array. + * to<SomeString>(SomeString str) or to<StringPiece>(StringPiece str) returns + * itself. As both std::string and folly::fbstring use Copy-on-Write, it's much + * more efficient by avoiding copying the underlying char array. */ template <class Tgt, class Src> typename std::enable_if< - IsSomeString<Tgt>::value && std::is_same<Tgt, Src>::value, - Tgt>::type + (IsSomeString<Tgt>::value + || std::is_same<Tgt, folly::StringPiece>::value) + && std::is_same<Tgt, Src>::value, Tgt>::type to(const Src & value) { return value; }