CEGUI Logo
This issue tracker is now in read-only mode. We migrated all our old bug reports to our bitbucket issue tracker
Please use our new issue tracker to report bugs. You can easily find all mantis tickets on our new issue tracker by selecting the appropriate bitbucket repo (CEGUI/CEED/Silly) and searching for the mantis ticket ID number.

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000384CEGUICore library (CEGUIBase)public2010-08-20 09:122010-10-04 12:54
ReporterTimo 
Assigned ToCrazyEddie 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformOSOS Version
Product VersionMercurial: default branch 
Target Version0.7.3Fixed in VersionMercurial: default branch 
Summary0000384: String::iterator::operator*() returns a const reference
DescriptionCEGUI::String s("foo");
*s.begin() = 98;

The above code gives a compiler error about assigning to a const variable (in MSVC2008). Took me some time to figure out what was going on because iterator::operator*() clearly returns "reference". But it doesn't actually mean String::reference, but std::iterator<>::reference, which is const, because its typedeffed from the template parameters given in String::const_iterator.

All the other types used in the iterator classes need to be checked too. I think at least "pointer" has the same issue.

branches/v0-7 r2600
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0000496)
CrazyEddie (administrator)
2010-10-04 12:54

Should be fixed in branches/v0-7 r2635.

The return types are correct and behave the same as std::string::iterator, which was one of the goals for CEGUI::String (and it's iterators).

The issues here were actually due to String::iterator subclassing String::const_iterator, and so it was impossible to actually get an iterator that could work in a non-const manner.

- Issue History
Date Modified Username Field Change
2010-08-20 09:12 Timo New Issue
2010-08-23 06:50 CrazyEddie Target Version 0.8.3 => 0.7.3
2010-08-26 11:00 CrazyEddie Status new => acknowledged
2010-09-29 09:51 CrazyEddie Status acknowledged => assigned
2010-09-29 09:51 CrazyEddie Assigned To => CrazyEddie
2010-09-30 11:12 CrazyEddie Status assigned => confirmed
2010-10-04 12:54 CrazyEddie Note Added: 0000496
2010-10-04 12:54 CrazyEddie Status confirmed => resolved
2010-10-04 12:54 CrazyEddie Fixed in Version 0.8.3 => Mercurial: default branch
2010-10-04 12:54 CrazyEddie Resolution open => fixed
Get Crazy Eddies GUI System at SourceForge.net. Fast, secure and Free Open Source software downloads


Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker