On Sat, May 31, 2014 at 2:00 PM, Thiago Macieira <thiago.macie...@intel.com> wrote:
> Em sex 09 maio 2014, às 11:36:08, Keith Gardner escreveu: > > I have been working on adding a class to QtCore (QVersion) to support > > storing version numbers, convert to/from QString, and having comparison > > operators. My goal was to provide an API to assist in the following use > > cases: > > > > - Plugin loading where there are multiple versions on the same system. > > - File format validation. > > - Executing an already installed command line application where the > > behavior is dependent on the called application's version. > > - Performing software installations and updates. > > - QMake support for version number comparisons. > > > > Please share other potential use cases where this might be useful. > > Ok, since we can't seem to agree, let's settle on the maximum common > denominator: QVersion will only compare the numeric part of a version > number. > By default, two versions with the same numeric part will compare equally, > regardless of any suffixes that may be present. > > Therefore, by default, given: > QVersion a("5.3.0"); > QVersion b("5.3.0pl1"); > QVersion c("5.3.0beta1"); > > a != b != c; // since they aren't equal > > QVersion::compare(a, b) == 0; > QVersion::compare(b, c) == 0; > > In the review of the change, a potential issue with this form of compare with the operators when using QVersion as the key in a QMap. Here is the scenario: QVersion a("5.3.0alpha"); QVersion b("5.3.0beta"); a != b; //true a < b; // false QMap<QVersion, QFoo> map; map[a] = foo1; map[b] = foo2; With the example, map[a] now is set to "foo2" which is incorrect since 'a' != 'b'. This is not an issue with QHash<QVersion, QFoo> since the suffix is included into the hashing of a QVersion. How should we resolve this conflict with ordering without applying a semantic compare to the suffix?
_______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development