Hi Michael,
I just installed Visual Studio 2017 and tested with that, using the default settings. It fails with the same error as 2015
h:\epics-devel\base-7.0.1\modules\pva2pva\pdbapp\pdbgroup.h(197): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning.
H:/epics-devel/base-7.0.1/include\pv/sharedPtr.h(93): note: see declaration of 'std::tr1'
../pdb.cpp(69): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning.
H:/epics-devel/base-7.0.1/include\pv/sharedPtr.h(93): note: see declaration of 'std::tr1'
../pdb.cpp(62): error C2664: 'std::shared_ptr<PVIFBuilder>::shared_ptr(std::shared_ptr<PVIFBuilder> &&) noexcept': cannot convert argument 1 from 'std::auto_ptr<PVIFBuilder>' to 's
td::auto_ptr<PVIFBuilder> &&'
../pdb.cpp(61): note: You cannot bind an lvalue to an rvalue reference
../pdb.cpp(508): warning C4267: '=': conversion from 'size_t' to 'unsigned int', possible loss of data
../pdb.cpp(560): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning.
H:/epics-devel/base-7.0.1/include\pv/sharedPtr.h(93): note: see declaration of 'std::tr1'
../pdb.cpp(624): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning.
H:/epics-devel/base-7.0.1/include\pv/sharedPtr.h(93): note: see declaration of 'std::tr1'
H:/epics-devel/base-7.0.1/configure/RULES_BUILD:237: recipe for target 'pdb.obj' failed
make[4]: *** [pdb.obj] Error 2
I then added the flags
/std:c++14
-D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING
But it still fails with the same error.
cl -EHsc -GR -DUSE_TYPED_RSET -I../../common -I../../p2pApp -DFINAL_LOCATION="\"H:/epics-devel/base-7.0.1\"" -nologo -D__STDC__=0 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -Ox -Oy- -W3 -w44355 -w44344 -w44251 -MT -TP /std:c++14 -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING -I. -I../O.Common -I. -I. -I.. -IH:/epics-devel/base-7.0.1/include/compiler/msvc -IH:/epics-devel/base-7.0.1/include/os/WIN32 -IH:/epics-devel/base-7.0.1/include -IH:/epics-devel/base-7.0.1/include/compiler/msvc -IH:/epics-devel/base-7.0.1/include/os/WIN32 -IH:/epics-devel/base-7.0.1/include -c ../pdb.cpp
pdb.cpp
H:/epics-devel/base-7.0.1/include\pv/pvData.h(583): warning C4250: 'epics::pvData::PVString': inherits 'epics::pvData::PVScalarValue<std::string>::epics::pvData::PVScalarValue<std:
:string>::deserialize' via dominance
H:/epics-devel/base-7.0.1/include\pv/pvData.h(488): note: see declaration of 'epics::pvData::PVScalarValue<std::string>::deserialize'
../pdb.cpp(62): error C2664: 'std::shared_ptr<PVIFBuilder>::shared_ptr(std::shared_ptr<PVIFBuilder> &&) noexcept': cannot convert argument 1 from 'std::auto_ptr<PVIFBuilder>' to 's
td::auto_ptr<PVIFBuilder> &&'
../pdb.cpp(61): note: You cannot bind an lvalue to an rvalue reference
../pdb.cpp(508): warning C4267: '=': conversion from 'size_t' to 'unsigned int', possible loss of data
H:/epics-devel/base-7.0.1/configure/RULES_BUILD:237: recipe for target 'pdb.obj' failed
make[3]: *** [pdb.obj] Error 2
Is it worth trying /std:c++17 or /std:c++latest?
It seems like the APS Jenkins Build server should be upgraded to VS2017 Community so these problems can be caught earlier in the development cycle.
Mark
> -----Original Message-----
> From: Michael Davidsaver [mailto:[email protected]]
> Sent: Wednesday, December 06, 2017 8:20 AM
> To: Mark Rivers; Peterson, Kevin M.; Johnson, Andrew N.; EPICS tech-talk
> Subject: Re: EPICS 7 Release Candidate 1
>
> On 12/06/2017 08:44 AM, Mark Rivers wrote:
> > Hi Michael,
> >
> >
> > Following the MSDN link in your message it says that the option /std:c++14 is supported
> in VS2015. In fact it says this:
> >
> >
> > The /std:c++14 and /std:c++latest options are available beginning in Visual C++ 2013
> Update 3.
> >
> >
> > However, I just did some Google searching, and it appears that the line above may
> actually be a typo, because other sources indicate that this option was added in Visual C++
> 2015 Update 3, not 2013. That would explain why it is not working for me.
> >
> >
> > I am not sure if it is possible to update the Community Edition 2015 to Update 3, or if I
> need to install 2017. Does anyone else know?
> >
> >
> > Do you plan to require using either 2010 (which works) or 2015 Update 3 or 2017
> (assuming they work) for EPICS 7? Or will the code be changed to work with these older
> compilers?
>
> I'll try my best to make it work in both cases. It's more a question of having a test
> environment.
>
>
> > Mark
> >
> >
> >
> > ________________________________
> > From: [email protected] <[email protected]> on behalf of
> Michael Davidsaver <[email protected]>
> > Sent: Tuesday, December 5, 2017 9:07 PM
> > To: Peterson, Kevin M.; Johnson, Andrew N.; EPICS tech-talk
> > Subject: Re: EPICS 7 Release Candidate 1
> >
> > On 12/05/2017 03:17 PM, Peterson, Kevin M. wrote:
> >> d:\epics7\base-7.0.1-rc1\modules\pva2pva\pdbapp\pdbgroup.h(136): note: see declaration
> of 'PDBGroupChannel'
> >> ../pdb.cpp(61): error C2664:
> 'std::shared_ptr<PVIFBuilder>::shared_ptr(std::shared_ptr<PVIFBuilder> &&) noexcept':
> cannot convert argument 1 from 'std::auto_ptr
> >> <PVIFBuilder>' to 'std::auto_ptr<PVIFBuilder> &&'
> >
> > hmm, seems like that MSVC implementation of shared_ptr doesn't have all of the
> constructor overloads.
> > Maybe they've just jumped the gun by removing the deprecated (in c++17) form, even
> when building in c++98?
> >
> > http://en.cppreference.com/w/cpp/memory/shared_ptr/shared_ptr
> >
> > Can you try to rebuild everything in >= c++11 mode by adding the "/std" compiler flag?
> > When built with >= c++11 compatibility, unique_ptr is used instead of (deprecated)
> auto_ptr here.
> >
> > https://msdn.microsoft.com/en-us/library/mt490614.aspx
> >
- References:
- EPICS 7 Release Candidate 1 Andrew Johnson
- Re: EPICS 7 Release Candidate 1 Peterson, Kevin M.
- Re: EPICS 7 Release Candidate 1 Michael Davidsaver
- Re: EPICS 7 Release Candidate 1 Mark Rivers
- Re: EPICS 7 Release Candidate 1 Michael Davidsaver
- Navigate by Date:
- Prev:
Recommendations for EPICS Based Data Acquisition System Matt Rippa
- Next:
RE: EPICS 7 Release Candidate 1 Mark Rivers
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
<2017>
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: EPICS 7 Release Candidate 1 Michael Davidsaver
- Next:
RE: EPICS 7 Release Candidate 1 Mark Rivers
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
<2017>
2018
2019
2020
2021
2022
2023
2024
|