Discussion:
[Audacity-devel] Build broken on MSVC2013.
James Crook
2017-07-09 14:04:07 UTC
Permalink
Paul, your use of default in commit

https://github.com/audacity/audacity/commi/7eafbf6dd61f08bf38d0c25e5b2c56ae7b829a15

breaks the build on MSVC2013.



c:\opensourcegit\audacity\src\tracks\ui\timeshifthandle.h(54): error
C2610: 'TimeShiftHandle &TimeShiftHandle::operator =(TimeShiftHandle
&&)' : is not a special member function which can be defaulted

This line (and similar lines for other handles) causes the problem:

TimeShiftHandle &operator=(TimeShiftHandle&&) = default;


Please fix.

--James.
Paul Licameli
2017-07-09 16:30:18 UTC
Permalink
Done, at dc864f3

PRL
Post by James Crook
Paul, your use of default in commit
https://github.com/audacity/audacity/commi/7eafbf6dd61f08bf3
8d0c25e5b2c56ae7b829a15
breaks the build on MSVC2013.
c:\opensourcegit\audacity\src\tracks\ui\timeshifthandle.h(54): error
is not a special member function which can be defaulted
TimeShiftHandle &operator=(TimeShiftHandle&&) = default;
Please fix.
--James.
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
audacity-devel mailing list
https://lists.sourceforge.net/lists/listinfo/audacity-devel
James Crook
2017-07-09 16:50:23 UTC
Permalink
Post by Paul Licameli
Done, at dc864f3
Not quite, as there are also:

LabelDefaultClickHandle
LabelGlyphHandle
LabelTextHandle

to fix.

I tried just putting const and removing one level of indirection, but
I'd have to change a bit more than that...

c:\opensourcegit\audacity\src\uihandle.h(149): error C2280:
'LabelTextHandle &LabelTextHandle::operator =(const LabelTextHandle &)'
: attempting to reference a deleted function
c:\opensourcegit\audacity\src\tracks\labeltrack\ui\labeltexthandle.h(34)
: see declaration of 'LabelTextHandle::operator ='
c:\opensourcegit\audacity\src\tracks\labeltrack\ui\labeltexthandle.cpp(46)
: see reference to function template instantiation 'std::shared_ptr<_Ty>
AssignUIHandlePtr<LabelTextHandle>(std::weak_ptr<_Ty> &,const
std::shared_ptr<_Ty> &)' being compiled
with
[
_Ty=LabelTextHandle
]


--James.
Post by Paul Licameli
PRL
Post by James Crook
Paul, your use of default in commit
https://github.com/audacity/audacity/commi/7eafbf6dd61f08bf3
8d0c25e5b2c56ae7b829a15
breaks the build on MSVC2013.
c:\opensourcegit\audacity\src\tracks\ui\timeshifthandle.h(54): error
is not a special member function which can be defaulted
TimeShiftHandle &operator=(TimeShiftHandle&&) = default;
Please fix.
--James.
Paul Licameli
2017-07-09 17:05:35 UTC
Permalink
More fix at
ef9745b9

PRL
Post by James Crook
Post by Paul Licameli
Done, at dc864f3
LabelDefaultClickHandle
LabelGlyphHandle
LabelTextHandle
to fix.
I tried just putting const and removing one level of indirection, but I'd
have to change a bit more than that...
attempting to reference a deleted function
c:\opensourcegit\audacity\src\tracks\labeltrack\ui\labeltexthandle.h(34)
: see declaration of 'LabelTextHandle::operator ='
c:\opensourcegit\audacity\src\tracks\labeltrack\ui\labeltexthandle.cpp(46)
: see reference to function template instantiation 'std::shared_ptr<_Ty>
AssignUIHandlePtr<LabelTextHandle>(std::weak_ptr<_Ty> &,const
std::shared_ptr<_Ty> &)' being compiled
with
[
_Ty=LabelTextHandle
]
--James.
Post by Paul Licameli
PRL
Paul, your use of default in commit
Post by James Crook
https://github.com/audacity/audacity/commi/7eafbf6dd61f08bf3
8d0c25e5b2c56ae7b829a15
breaks the build on MSVC2013.
c:\opensourcegit\audacity\src\tracks\ui\timeshifthandle.h(54): error
is not a special member function which can be defaulted
TimeShiftHandle &operator=(TimeShiftHandle&&) = default;
Please fix.
--James.
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
audacity-devel mailing list
https://lists.sourceforge.net/lists/listinfo/audacity-devel
Paul Licameli
2017-07-09 17:17:56 UTC
Permalink
Post by Paul Licameli
More fix at
ef9745b9
PRL
Wait... no.

Arrr, I am discovering that the three compilers have different
interpretations of the rules for generating the move constructor and
assignment.

PRL
Post by Paul Licameli
Post by James Crook
Post by Paul Licameli
Done, at dc864f3
LabelDefaultClickHandle
LabelGlyphHandle
LabelTextHandle
to fix.
I tried just putting const and removing one level of indirection, but I'd
have to change a bit more than that...
attempting to reference a deleted function
c:\opensourcegit\audacity\src\tracks\labeltrack\ui\labeltexthandle.h(34)
: see declaration of 'LabelTextHandle::operator ='
c:\opensourcegit\audacity\src\tracks\labeltrack\ui\labeltexthandle.cpp(46)
: see reference to function template instantiation 'std::shared_ptr<_Ty>
AssignUIHandlePtr<LabelTextHandle>(std::weak_ptr<_Ty> &,const
std::shared_ptr<_Ty> &)' being compiled
with
[
_Ty=LabelTextHandle
]
--James.
Post by Paul Licameli
PRL
Paul, your use of default in commit
Post by James Crook
https://github.com/audacity/audacity/commi/7eafbf6dd61f08bf3
8d0c25e5b2c56ae7b829a15
breaks the build on MSVC2013.
c:\opensourcegit\audacity\src\tracks\ui\timeshifthandle.h(54): error
is not a special member function which can be defaulted
TimeShiftHandle &operator=(TimeShiftHandle&&) = default;
Please fix.
--James.
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
audacity-devel mailing list
https://lists.sourceforge.net/lists/listinfo/audacity-devel
Loading...