Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Developing U++ » U++ Developers corner » Error C2280 with MSC15 and Uniq (Error C2280 with MSC15 and Uniq (attempting to reference a deleted function))
Re: Error C2280 with MSC15 and Uniq [message #47036 is a reply to message #47033] Wed, 16 November 2016 23:25 Go to previous messageGo to previous message
mirek is currently offline  mirek
Messages: 13978
Registered: November 2005
Ultimate Member
awksed wrote on Wed, 16 November 2016 03:39
I'm getting error C2280 (attempting to reference a deleted function) with MSC15 (pick() usually fixes most of these)
but there is a line in Uniq that is causing problems: PostCallback(callback1(WhenInstance, v));.

MSC15x64 compiler -Od switch

(no problem with MSC10x64)

Snippets:

class Uniq
{
// callback called when another app instance is run
//
Callback1<Vector<String> const &> WhenInstance;
}


PostCallback(callback1(WhenInstance, v));


Trouble is using callback1 here... You are trying to 'deep copy' v (because it needs to become the part of callback value), but v does not have copy... (it is 'deleted').

To pass v into callback1, you need to use 'clone' or 'pick'. Which is a bit of trouble without C++14, but in C++14 you can use lambda with explicit copy specification like:


CONSOLE_APP_MAIN
{
	Event<const Vector<int>&> h = [](const Vector<int>& x) { DUMP(x); };

	Event<> ev;

	{
		Vector<int> x = { 1, 2 };
		ev = [=, x = pick(x)] { h(x); };
	}
	
	ev();
}



(this is in current trunk, upcoming 2016 release, but should work with Callback instead of Event too).

Alternatively, using

WithDeepCopy< Vector<String> > v;


would work too, with possible perfomance hit (if v is to be big)

[Updated on: Wed, 16 November 2016 23:25]

Report message to a moderator

 
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: lambda troubles...
Next Topic: Are there any plans to convert U++ comments to format as DOXYGEN / JAVADOC?
Goto Forum:
  


Current Time: Sun May 12 16:09:58 CEST 2024

Total time taken to generate the page: 0.02998 seconds