error C2621



  • template <class T>
    std::basic_string<T, std::char_traits<T>, std::allocator<T>> to_wstring(const std::string &in)
    {
    	typename std::basic_string<T, std::char_traits<T>, std::allocator<T>>::size_type inLength = in.length();
    
    	const std::ctype<T> *cType;
    	cType = &std::use_facet<std::ctype<T> >(std::locale());
    
    	auto inSrc = in.c_str();
    
    	std::vector<T> out(inLength);
    	cType->widen(inSrc, inSrc + inLength, &out[0]);
    
    	return std::basic_string<T, std::char_traits<T>, std::allocator<T>>(&out[0], inLength);
    }
    

    Das ist eine Funktion um einen std::string in einen std::wstring zu konvertieren. Ich weiß, der Code ist noch nicht sonderlich schön, mir geht es aber erstmal darum, dass er funktioniert.

    Momentan bekomme ich folgende Fehlermeldung:

    error C2621: Element 'std::_String_val<_Val_types>::_Bxty::_Buf' von Union 'std::_String_val<_Val_types>::_Bxty' besitzt den Kopierkonstruktor
    


  • Schon mal wstring_convert angeschaut?



  • laut fehler meldung hat eine union bei dir (verbotenerweise) einen kopierkonstruktor. aber das solltest ja schon selbst herausgefunden haben per google etc.

    aber ein bisschen mehr der fehlermeldung wäre hübsch...


Anmelden zum Antworten