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 » Developing U++ » U++ Developers corner » What is the highest version of U++ that does not require C++11 ?
Re: What is the highest version of U++ that does not require C++11 ? [message #47889 is a reply to message #47887] Wed, 19 April 2017 15:19 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 11082
Registered: November 2005
Ultimate Member
aftershock wrote on Tue, 18 April 2017 21:45
I have similar problem
I have current stable IDE..(version 10804). Windows....VIsual studio 17 64 bit
Why is it calling a copy constructor at map.h 212

threads[free_index].Run ( THISBACK5 ( execute_bot_in_background, bot1, a, params, result_mode, stat_group_id ) );

main.cpp(1502): error C2280: 'Upp::VectorMap<Upp::String,double>::VectorMap(const Upp::VectorMap<Upp::String,double> &)': attempting to reference 
    a deleted function
d:\upp\uppsrc\core\Map.h(212): note: compiler has generated 'Upp::VectorMap<Upp::String,double>::VectorMap' here
d:\upp\uppsrc\core\Map.h(212): note: 'Upp::VectorMap<Upp::String,double>::VectorMap(const Upp::VectorMap<Upp::String,double> &)': function was implicitly deleted becau
    se a base class invokes a deleted or inaccessible function 'Upp::AMap<K,T,Upp::Vector<T>>::AMap(const Upp::AMap<K,T,Upp::Vector<T>> &)'
        with
        [
            K=Upp::String,
            T=double
        ]
d:\upp\uppsrc\core\Map.h(190): note: 'Upp::AMap<K,T,Upp::Vector<T>>::AMap(const Upp::AMap<K,T,Upp::Vector<T>> &)': function was implicitly deleted because a data membe
    r invokes a deleted or inaccessible function 'Upp::Index<Upp::String>::Index(const Upp::Index<Upp::String> &)'
        with
        [
            K=Upp::String,
            T=double
        ]
d:\upp\uppsrc\core\Index.h(210): note: 'Upp::Index<Upp::String>::Index(const Upp::Index<Upp::String> &)': function was implicitly deleted because 'Upp::Index<Upp::Stri
    ng>' has a user-defined move constructor
        ]


Hard to say without context. However, it looks like you are passing VectorMap as parameter to THISBACK5 - that is not possible. Legacy U++ (pre C++11) was tricky as it has silently used pick constructor here.

The situation is really only resolved with current U++, lamdas and C++14.

http://www.ultimatepp.org/srcdoc$Core$Tutorial$en-us.html
chapter 5.2
Re: What is the highest version of U++ that does not require C++11 ? [message #47893 is a reply to message #47889] Wed, 19 April 2017 17:15 Go to previous message
aftershock is currently offline  aftershock
Messages: 100
Registered: May 2008
Experienced Member
I still have problem with the latest U++.
threads[free_index].Run ( THISBACK5 ( execute_bot_in_background, bot1, a, pick(params), result_mode, stat_group_id ) );


main.cpp(1306): note: see reference to function template instantiation 'Upp::CallbackN<> Upp::callback5<Upp::ValueArray,Upp::Time,Upp::T
ime,maintradetesterwindow*,Upp::int64,Upp::ValueArray,Upp::T ime,Upp::Time,maintradetesterwindow*,int >(void (__cdecl *)(MP1,MP2,MP3,MP4,MP5),P1,P2,P3,P4,P
5)' being compiled
with
[
MP1=Upp::ValueArray,
MP2=Upp::Time,
MP3=Upp::Time,
MP4=maintradetesterwindow *,
MP5=int,
P1=Upp::ValueArray,
P2=Upp::Time,
P3=Upp::Time,
P4=maintradetesterwindow *,
P5=Upp::int64
]
d:\upp10998\upp\uppsrc\core\CallbackNP.i(38): error C2280: 'Upp::VectorMap<Upp::String,double>::VectorMap(const Upp::VectorMap<Upp::String,double> &)': attem
pting to reference a deleted function
d:\upp10998\upp\uppsrc\core\Map.h(212): note: compiler has generated 'Upp::VectorMap<Upp::String,double>::VectorMap' here
d:\m\upp\tradetester\main.cpp(1502): note: see reference to function template instantiation 'Upp::CallbackN<> Upp::callback5<maintradetesterwindow,maintradet
esterwindow,executor*,Upp::ValueArray,Upp::VectorMap<Upp::String,double >,int,int,executor*,Upp::ValueArray,Upp::VectorMap<Upp::String,double >,int,int>(O
*,void (__cdecl maintradetesterwindow::* )(MP1,MP2,MP3,MP4,MP5),P1,P2,P3,P4,P5)' being compiled
with
[
O=maintradetesterwindow,
MP1=executor *,
MP2=Upp::ValueArray,
MP3=Upp::VectorMap<Upp::String,double>,
MP4=int,
MP5=int,
P1=executor *,
P2=Upp::ValueArray,
P3=Upp::VectorMap<Upp::String,double>,
P4=int,
P5=int
]
d:\upp10998\upp\uppsrc\core\Map.h(212): note: 'Upp::VectorMap<Upp::String,double>::VectorMap(const Upp::VectorMap<Upp::String,double> &)': function was impli
citly deleted because a base class invokes a deleted or inaccessible function 'Upp::AMap<K,T,Upp::Vector<T>>::AMap(const Upp::AMap<K,T,Upp::Vector<T>> &)
'
with
[
K=Upp::String,
T=double
]
d:\upp10998\upp\uppsrc\core\Map.h(190): note: 'Upp::AMap<K,T,Upp::Vector<T>>::AMap(const Upp::AMap<K,T,Upp::Vector<T>> &)': function was implicitly deleted b
ecause a data member invokes a deleted or inaccessible function 'Upp::Index<Upp::String>::Index(const Upp::Index<Upp::String> &)'
with
[
K=Upp::String,
T=double
]
d:\upp10998\upp\uppsrc\core\Index.h(210): note: 'Upp::Index<Upp::String>::Index(const Upp::Index<Upp::String> &)': function was implicitly deleted because 'U
pp::Index<Upp::String>' has a user-defined move constructor
d:\upp10998\upp\uppsrc\core\CallbackNP.i(38): error C2664: 'void (MP1,MP2,MP3,MP4,MP5)': cannot convert argument 2 from 'const Upp::VectorMap<Upp::String,opt
imise_settings_type>' to 'Upp::VectorMap<Upp::String,optimise_settings_type> &'
with
[
MP1=Upp::ValueArray &,
MP2=Upp::VectorMap<Upp::String,optimise_settings_type> &,
MP3=Upp::Vector<double>,
MP4=int,
MP5=int
]
d:\upp10998\upp\uppsrc\core\CallbackNP.i(38): note: Conversion loses qualifiers
d:\m\upp\tradetester\main.cpp(3980): note: see reference to function template instantiation 'Upp::CallbackN<> Upp::callback5<maintradetesterwindow,maintradet
esterwindow,Upp::ValueArray,Upp::VectorMap<Upp::String,optimise_settings_type >,Upp::Vector<double>,int,int,Upp::ValueArray&,Upp::VectorMap <Upp::String,op
timise_settings_type>&,Upp::Vector<double>,int,int>(O *,void (__cdecl maintradetesterwindow::* )(MP1,MP2,MP3,MP4,MP5),P1,P2,P3,P4,P5)' being compiled
with
[
O=maintradetesterwindow,
MP1=Upp::ValueArray &,
MP2=Upp::VectorMap<Upp::String,optimise_settings_type> &,
MP3=Upp::Vector<double>,
MP4=int,
MP5=int,
P1=Upp::ValueArray,
P2=Upp::VectorMap<Upp::String,optimise_settings_type>,
P3=Upp::Vector<double>,
P4=int,
P5=int
]
d:\upp10998\upp\uppsrc\core\CallbackNP.i(38): error C2664: 'void (MP1,MP2,MP3,MP4,MP5)': cannot convert argument 1 from 'const Upp::ValueArray' to 'Upp::Valu
eArray &'
with
[
MP1=Upp::ValueArray &,
MP2=Upp::VectorMap<Upp::String,optimise_settings_type> &,
MP3=Upp::Vector<double>,
MP4=int,
MP5=int
]
Previous Topic: Use zlib inside another library
Next Topic: U++ in a computer cluster
Goto Forum:
  


Current Time: Fri Aug 18 18:18:06 CEST 2017

Total time taken to generate the page: 0.00606 seconds