<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>strange syntax</title>
		<link>http://www.allegro.cc/forums/view/618068</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 16 Mar 2020 18:28:53 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I was helping a collegue with tensor flow and I came across this syntax...</p><p>I&#39;ve never seen this in C++ </p><p>InterpreterBuilder(*pModel, resolver)(&amp;pInterpreter);</p><p>where pModel is a pointer and strangely enough pInterpreter is a pointer too so in that case  the address of a pointer is passed <img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" />  that would be a pointer pointer which makes no sense in this case....</p><p>anyone ?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ariesnl)</author>
		<pubDate>Mon, 16 Mar 2020 13:58:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It looks like <span class="source-code">InterpreterBuilder</span> is a class that overloads the function call operator: <a href="https://en.cppreference.com/w/cpp/language/operators">https://en.cppreference.com/w/cpp/language/operators</a></p><p>So you&#39;re calling the constructor then calling the overload. Or it could be a function that returns an object that overloads the function call operator but that seems less likely.</p><p>I&#39;ve never used Tensorflow so I don&#39;t know for certain but those are two possible explanations for that syntax.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Erin Maus)</author>
		<pubDate>Mon, 16 Mar 2020 14:17:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It&#39;s this:<br /><a href="https://www.tensorflow.org/lite/api_docs/cc/class/tflite/interpreter-builder">https://www.tensorflow.org/lite/api_docs/cc/class/tflite/interpreter-builder</a></p><p>The code is doing something like
</p><div class="source-code snippet"><div class="inner"><pre>std::unique_ptr<span class="k3">&lt;</span>Interpreter&gt;<span class="k3">*</span> pInterpreter<span class="k3">=</span> ...<span class="k2">;</span>
FlatBuffer<span class="k3">*</span> pModel <span class="k3">=</span> ...<span class="k2">;</span>
OpResolver resolver <span class="k3">=</span> ...<span class="k2">;</span>
InterpreterBuilder builder<span class="k2">(</span><span class="k3">*</span>pModel, resolver<span class="k2">)</span><span class="k2">;</span> <span class="c">// construct</span>
TfLiteStatus status <span class="k3">=</span> builder<span class="k2">(</span><span class="k3">&amp;</span>pInterpreter<span class="k2">)</span><span class="k2">;</span> <span class="c">// call operator()</span>
</pre></div></div><p>
and the last line is really
</p><div class="source-code snippet"><div class="inner"><pre>TfLiteStatus status <span class="k3">=</span> builder.operator<span class="k2">(</span><span class="k2">)</span><span class="k2">(</span><span class="k3">&amp;</span>pInterpreter<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Hull)</author>
		<pubDate>Mon, 16 Mar 2020 18:28:53 +0000</pubDate>
	</item>
</rss>
