[prev in list] [next in list] [prev in thread] [next in thread]
List: boost-users
Subject: [Boost-users] Compile error with boost::factory after upgrade to 1.58.0
From: Bitar Fadi <Fadi.Bitar () sweco ! se>
Date: 2015-04-18 9:05:14
Message-ID: DB5PR07MB0776CCD3DD4EDC1E6ED2BF1BE7E20 () DB5PR07MB0776 ! eurprd07 ! prod ! outlook ! com
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
Hi,
I installed Boost 1.58.0 today, having been using 1.57.0 previously, and no=
ticed that a part of my code that uses boost::factory doesn't compile anymo=
re. Here's briefly what I'm doing, followed by the error message I'm gettin=
g:
typedef boost::function<Apollo::ReportGenerator*(Apollo::ApolloBaseModel*)>=
reportFactory;
struct reportListing {
std::string displayName;
reportFactory factory;
reportListing(std::string name, reportFactory f) : displayName(name), fac=
tory(f) { }
};
std::vector<reportListing> reportFactories;
reportFactories.push_back(reportListing("Scenario Analyzer", boost::factory=
<Apollo::ScenarioAnalyzer*>())); // Apollo::ReportGenerator being the base =
class from which Apollo::ScenarioAnalyzer is derived
...
The constructor for ScenarioAnalyzer is:
ScenarioAnalyzer(Apollo::ApolloBaseModel* model)
This fails to compile with the following error (on Windows 7 using Visual C=
++ 12):
error C2664: 'Apollo::ScenarioAnalyzer *boost::factory<Pointer,void,factory=
_alloc_for_pointee_and_deleter>::operator ()(void) const' : cannot convert =
argument 1 from 'Apollo::ApolloBaseModel *' to 'Apollo::ApolloBaseModel *&'
I'm just wondering if that is caused by an intentional change or not, becau=
se according to the change log to boost::factory no significant changes wit=
h implications to backward compatibility have been made.
Also, I'm not sure I know how to get rid of this error.
Thanks for the help!
/Fadi
________________________________
Fadi Bitar
Modeling and simulation specialist
Energy Markets
Telephone direct +46 (0)8 695 64 05
Mobile +46 725 40 64 05
fadi.bitar@sweco.se<mailto:fadi.bitar@sweco.se>
Sweco Energuide AB
Gj=F6rwellsgatan 22
P.O. Box 34044
SE-100 26 Stockholm
Telephone +46 8 695 60 00
www.sweco.se<http://www.sweco.se/>
[cid:image001.jpg@01CECF3E.855DC4C0]
Please consider the environment before printing this e-mail.
[Attachment #5 (text/html)]
<html xmlns:v="urn:schemas-microsoft-com:vml" \
xmlns:o="urn:schemas-microsoft-com:office:office" \
xmlns:w="urn:schemas-microsoft-com:office:word" \
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" \
xmlns="http://www.w3.org/TR/REC-html40"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
{mso-style-priority:99;
mso-style-link:"Ballongtext Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:8.0pt;
font-family:"Tahoma","sans-serif";
mso-fareast-language:EN-US;}
span.E-postmall17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
span.BallongtextChar
{mso-style-name:"Ballongtext Char";
mso-style-priority:99;
mso-style-link:Ballongtext;
font-family:"Tahoma","sans-serif";}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri","sans-serif";
mso-fareast-language:EN-US;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="SV" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US">I installed Boost 1.58.0 today, having been \
using 1.57.0 previously, and noticed that a part of my code that uses boost::factory \
doesn’t compile anymore. Here’s briefly what I’m doing, followed by \
the error message I’m getting:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white">typedef</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">
boost::</span><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white">function</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white"><Apollo::</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white">ReportGenerator</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">*(Apollo::</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white">ApolloBaseModel</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">*)>
</span><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white">reportFactory</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">;<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">
<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white">struct</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">
</span><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white">reportListing</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white"> \
{<o:p></o:p></span></p> <p class="MsoNormal" style="text-autospace:none"><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white"> \
std::</span><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white">string</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">
displayName;<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white"> \
reportFactory</span><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">
factory;<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white"> \
reportListing(std::</span><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white">string</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">
</span><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:gray;background:white;mso-highlight:white">name</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">,
</span><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white">reportFactory</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">
</span><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:gray;background:white;mso-highlight:white">f</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">) \
: displayName(</span><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:gray;background:white;mso-highlight:white">name</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">),
factory(</span><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:gray;background:white;mso-highlight:white">f</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">) \
{ }<o:p></o:p></span></p> <p class="MsoNormal"><span \
style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">};</span><span \
lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span \
style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">std::</span><span \
style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white">vector</span><span \
style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white"><</span><span \
style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white">reportListing</span><span \
style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">>
</span><span style="font-size:9.5pt;font-family:Consolas;color:gray;background:white;mso-highlight:white">reportFactories</span><span \
style="font-size:9.5pt;font-family:Consolas;color:gray">;<o:p></o:p></span></p> <p \
class="MsoNormal"><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:gray;background:white;mso-highlight:white">reportFactories</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">.push_back(</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white">reportListing</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">(</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white">"Scenario
Analyzer"</span><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">, \
boost::</span><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white">factory</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white"><Apollo::</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white">ScenarioAnalyzer</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">*>()));</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"> </span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:green;background:white;mso-highlight:white">//</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:green"> \
Apollo::ReportGenerator being the base class from which Apollo::ScenarioAnalyzer is \
derived </span><span lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">...</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:green"> </span><span \
lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">The \
constructor for ScenarioAnalyzer is: <o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">ScenarioAnalyzer(Apollo::</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white">ApolloBaseModel</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">*
</span><span lang="EN-US" \
style="font-size:9.5pt;font-family:Consolas;color:gray;background:white;mso-highlight:white">model</span><span \
lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white">)</span><span \
lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span \
lang="EN-US">This fails to compile with the following error (on Windows 7 using \
Visual C++ 12):<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><i><span \
lang="EN-US">error C2664: 'Apollo::ScenarioAnalyzer \
*boost::factory<Pointer,void,factory_alloc_for_pointee_and_deleter>::operator \
()(void) const' : cannot convert argument 1 from 'Apollo::ApolloBaseModel *' to \
'Apollo::ApolloBaseModel
*&'<o:p></o:p></span></i></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I’m just wondering if that is caused by \
an intentional change or not, because according to the change log to boost::factory \
no significant changes with implications to backward compatibility have been made. \
<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US">Also, I’m not \
sure I know how to get rid of this error.<o:p></o:p></span></p> <p \
class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p \
class="MsoNormal"><span lang="EN-US">Thanks for the help!<o:p></o:p></span></p> <p \
class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p \
class="MsoNormal"><span lang="EN-US">/Fadi<o:p></o:p></span></p> <p \
class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <div \
class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US" \
style="font-size:10.0pt;mso-fareast-language:SV"> <hr size="1" width="100%" \
noshade="" style="color:#D70005" align="center"> </span></div>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" width="613" \
style="width:459.55pt"> <tbody>
<tr>
<td width="244" valign="top" style="width:182.75pt;padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" \
style="font-size:8.0pt;font-family:"Verdana","sans-serif";mso-fareast-language:SV">Fadi \
Bitar<br> </span></b><a name="swPersonal_Area"></a><a \
name="swPersonal_Title"></a><span lang="EN-US" \
style="font-size:7.0pt;font-family:"Verdana","sans-serif";mso-fareast-language:SV">Modeling \
and simulation specialist<br> <a name="swLead_PersonalPhone">Energy \
Markets</a></span><span lang="EN-US" \
style="font-size:7.0pt;font-family:"Verdana","sans-serif";mso-fareast-language:SV"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" \
style="font-size:7.0pt;font-family:"Verdana","sans-serif";mso-fareast-language:SV">Telephone \
direct <a name="swPersonal_Phone">+46 (0)8 695</a> 64 05<br>
<a name="swLead_PersonalCellPhone">Mobile</a> <a \
name="swPersonal_CellPhone">+46 725 </a>40 64 05<br>
</span><a name="swPersonal_Email"></a><span \
style="font-size:7.0pt;font-family:"Verdana","sans-serif";mso-fareast-language:SV"><a \
href="mailto:fadi.bitar@sweco.se"><span lang="EN-US" \
style="color:blue">fadi.bitar@sweco.se</span></a></span><span lang="EN-US" \
style="font-size:7.0pt;font-family:"Verdana","sans-serif";mso-fareast-language:SV"><o:p></o:p></span></p>
</td>
<td width="244" valign="top" style="width:182.7pt;padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal"><a name="swPersonal_CompanyName"><b><span lang="EN-US" \
style="font-size:8.0pt;font-family:"Verdana","sans-serif";mso-fareast-language:SV">Sweco \
Energuide AB</span></b></a><span lang="EN-US" \
style="font-size:8.0pt;font-family:"Verdana","sans-serif";mso-fareast-language:SV"><br>
</span><a name="swPersonal_OfficeVisitAddress"><span lang="EN-US" \
style="font-size:7.0pt;font-family:"Verdana","sans-serif";mso-fareast-language:SV">Gjörwellsgatan \
22</span></a><span lang="EN-US" \
style="font-size:7.0pt;font-family:"Verdana","sans-serif";mso-fareast-language:SV"><br>
<a name="swPersonal_OfficePostAddress">P.O. Box </a>34044<br>
<a name="swPersonal_OfficeCountryPrefix">SE</a>-<a \
name="swPersonal_OfficePostCode">100 </a>26 Stockholm<br>
<a name="swLead_OfficePhone">Telephone</a> <a \
name="swPersonal_OfficePhone">+46 </a> <a \
name="swPersonal_CompanyWebAddress">8 695 60 00</a></span><span lang="EN-US" \
style="font-size:7.0pt;font-family:"Verdana","sans-serif";mso-fareast-language:SV"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:SV"><a \
href="http://www.sweco.se/"><span \
style="font-size:7.0pt;font-family:"Verdana","sans-serif";color:blue">www.sweco.se</span></a></span><span \
style="font-size:7.0pt;font-family:"Verdana","sans-serif";mso-fareast-language:SV"><o:p></o:p></span></p>
</td>
<td width="125" valign="bottom" style="width:94.1pt;padding:0cm 0cm 0cm 0cm">
<p class="MsoNormal" align="right" style="text-align:right"><span \
style="font-size:3.0pt;font-family:"Verdana","sans-serif";mso-fareast-language:SV"><br>
</span><span style="font-size:3.0pt;font-family:"Verdana","sans-serif";mso-fareast-language:SV"><o:p></o:p></span></p>
<p class="MsoNormal" align="right" style="text-align:right"><span \
style="font-size:7.0pt;font-family:"Verdana","sans-serif";mso-fareast-language:SV"><img \
border="0" width="79" height="23" id="Bildobjekt_x0020_3" \
src="cid:image001.jpg@01D07965.AF39E850" \
alt="cid:image001.jpg@01CECF3E.855DC4C0"></span><span lang="EN-GB" \
style="font-size:7.0pt;font-family:"Verdana","sans-serif";mso-fareast-language:SV"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span \
style="font-size:3.0pt;font-family:"Arial","sans-serif";mso-fareast-language:SV"><o:p> </o:p></span></p>
<p class="MsoNormal"><a name="swLead_EmailEnvironment"><span lang="EN-GB" \
style="font-size:7.0pt;color:#00B050;mso-fareast-language:SV">Please consider the \
environment before printing this e-mail.</span></a><span lang="EN-US" \
style="mso-fareast-language:SV"><o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span \
lang="EN-US"><o:p> </o:p></span></p> </div>
</body>
</html>
["image001.jpg" (image/jpeg)]
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users
--===============4481462724146026415==--
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic