No, this is not sufficient.
Consider a wstring
that contains the following characters (numeric values used for clarity)
{ 0x41, 0x1243, 0x62 }
(That's 'A', followed by ETHIOPIC SYLLABLE QAA, followed by 'b' if you're using Unicode).
Converting to a string
using your routine would result in a sequence containing { 0x41, 0x43, 0x42 }
, or 'ACb'. Probably not what you expected - or wanted.
As DyP said - you're not doing any conversion, only narrowing.