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 » U++ TheIDE » U++ TheIDE: Other Features Wishlist and/or Bugs » bug in latest svn
Re: bug in latest svn [message #15687 is a reply to message #15686] Sun, 04 May 2008 18:12 Go to previous messageGo to previous message
mdelfede is currently offline  mdelfede
Messages: 1307
Registered: September 2007
Ultimate Contributor
Indeed, I was wrong before :

This piece of code :

#include "stdio.h"

static long seed = 0;

class LongClass
{
		long l;
	public :
		long Get(void) const { return l; }
		LongClass() { l = seed++ ; }
	
};

const LongClass &test(const LongClass &lClass = LongClass())
{
	return lClass;
	
}

int main(int argc, const char *argv[])
{
	const LongClass &a = test();
	const LongClass &b = test();
	
	long aa = a.Get();
	long bb = b.Get();
	
	return 0;
}


Shows that's perfectly legal to return references to const temporaries... Here aa gets a value of 0 and bb of 1, correctly.

That behaviour allows to initialize default reference arguments with objects created on the fly. I don't know where does compile store the actual value....

Max

[Updated on: Sun, 04 May 2008 18:14]

Report message to a moderator

 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Some lack of features
Next Topic: [BUG] Ide loses "maximized" setting on minimize
Goto Forum:
  


Current Time: Mon May 13 19:42:09 CEST 2024

Total time taken to generate the page: 0.01636 seconds