[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>&nbsp;</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&#8217;t compile anymore. Here&#8217;s briefly what I&#8217;m doing, followed by \
the error message I&#8217;m  getting:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</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">&lt;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">*)&gt;
 </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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 <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">&nbsp; \
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">&nbsp; \
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">&nbsp; \
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>&nbsp;</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">&lt;</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">&gt;
 </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">&quot;Scenario
  Analyzer&quot;</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">&lt;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">*&gt;()));</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>&nbsp;</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>&nbsp;</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&#43;&#43; 12):<o:p></o:p></span></p> <p class="MsoNormal"><span \
lang="EN-US"><o:p>&nbsp;</o:p></span></p> <p class="MsoNormal"><i><span \
lang="EN-US">error C2664: 'Apollo::ScenarioAnalyzer \
*boost::factory&lt;Pointer,void,factory_alloc_for_pointee_and_deleter&gt;::operator \
()(void) const' : cannot convert argument 1 from 'Apollo::ApolloBaseModel *' to \
                'Apollo::ApolloBaseModel
 *&amp;'<o:p></o:p></span></i></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I&#8217;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&#8217;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>&nbsp;</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>&nbsp;</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>&nbsp;</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:&quot;Verdana&quot;,&quot;sans-serif&quot;;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:&quot;Verdana&quot;,&quot;sans-serif&quot;;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:&quot;Verdana&quot;,&quot;sans-serif&quot;;mso-fareast-language:SV"><o:p></o:p></span></p>
 <p class="MsoNormal"><span lang="EN-US" \
style="font-size:7.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;;mso-fareast-language:SV">Telephone \
direct&nbsp; <a name="swPersonal_Phone">&#43;46 (0)8&nbsp;695</a> 64 05<br>
<a name="swLead_PersonalCellPhone">Mobile</a>&nbsp; <a \
name="swPersonal_CellPhone">&#43;46&nbsp;725 </a>40 64 05<br>
</span><a name="swPersonal_Email"></a><span \
style="font-size:7.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;;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:&quot;Verdana&quot;,&quot;sans-serif&quot;;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:&quot;Verdana&quot;,&quot;sans-serif&quot;;mso-fareast-language:SV">Sweco \
Energuide AB</span></b></a><span lang="EN-US" \
style="font-size:8.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;;mso-fareast-language:SV"><br>
 </span><a name="swPersonal_OfficeVisitAddress"><span lang="EN-US" \
style="font-size:7.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;;mso-fareast-language:SV">Gjörwellsgatan \
22</span></a><span lang="EN-US" \
style="font-size:7.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;;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&nbsp;Stockholm<br>
<a name="swLead_OfficePhone">Telephone</a>&nbsp; <a \
name="swPersonal_OfficePhone">&#43;46 </a> <a \
name="swPersonal_CompanyWebAddress">8&nbsp;695 60 00</a></span><span lang="EN-US" \
style="font-size:7.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;;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:&quot;Verdana&quot;,&quot;sans-serif&quot;;color:blue">www.sweco.se</span></a></span><span \
style="font-size:7.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;;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:&quot;Verdana&quot;,&quot;sans-serif&quot;;mso-fareast-language:SV"><br>
 &nbsp;</span><span style="font-size:3.0pt;font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;;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:&quot;Verdana&quot;,&quot;sans-serif&quot;;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:&quot;Verdana&quot;,&quot;sans-serif&quot;;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:&quot;Arial&quot;,&quot;sans-serif&quot;;mso-fareast-language:SV"><o:p>&nbsp;</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>&nbsp;</o:p></span></p> <p class="MsoNormal"><span \
lang="EN-US"><o:p>&nbsp;</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