<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	
	>
<channel>
	<title>
	Comments on: The &#8220;Extract Interface&#8221; refactoring, at compile time	</title>
	<atom:link href="https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/</link>
	<description>Jonathan Boccara&#039;s blog</description>
	<lastBuildDate>Sat, 10 Jun 2017 10:41:00 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.4</generator>
	<item>
		<title>
		By: Yosi Zelensky		</title>
		<link>https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-333</link>

		<dc:creator><![CDATA[Yosi Zelensky]]></dc:creator>
		<pubDate>Sat, 10 Jun 2017 10:41:00 +0000</pubDate>
		<guid isPermaLink="false">https://www.fluentcpp.com/?p=848#comment-333</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-276&quot;&gt;Jonathan Boccara&lt;/a&gt;.

Well, you could use some SFINAE and static_asserts to give a better description of the interface and possible usage]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-276">Jonathan Boccara</a>.</p>
<p>Well, you could use some SFINAE and static_asserts to give a better description of the interface and possible usage</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Yosi Zelensky		</title>
		<link>https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-332</link>

		<dc:creator><![CDATA[Yosi Zelensky]]></dc:creator>
		<pubDate>Sat, 10 Jun 2017 10:38:00 +0000</pubDate>
		<guid isPermaLink="false">https://www.fluentcpp.com/?p=848#comment-332</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-282&quot;&gt;Loïc Yvonnet&lt;/a&gt;.

I think that HippoMocks actually solves it way better than Mockaron+GoogleMock since you don&#039;t need to add anything to your code like macros. It just hooks the the wanted functionclass in-memory with a very elegant and easy to use interface.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-282">Loïc Yvonnet</a>.</p>
<p>I think that HippoMocks actually solves it way better than Mockaron+GoogleMock since you don&#8217;t need to add anything to your code like macros. It just hooks the the wanted functionclass in-memory with a very elegant and easy to use interface.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Boccara		</title>
		<link>https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-291</link>

		<dc:creator><![CDATA[Jonathan Boccara]]></dc:creator>
		<pubDate>Mon, 22 May 2017 14:27:00 +0000</pubDate>
		<guid isPermaLink="false">https://www.fluentcpp.com/?p=848#comment-291</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-290&quot;&gt;Philippe Daouadi&lt;/a&gt;.

Yes we&#039;re trying it on our projects and so far it&#039;s giving encouraging results. The next thing I&#039;d like to do it integrate it with Google Mock like you did.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-290">Philippe Daouadi</a>.</p>
<p>Yes we&#8217;re trying it on our projects and so far it&#8217;s giving encouraging results. The next thing I&#8217;d like to do it integrate it with Google Mock like you did.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Philippe Daouadi		</title>
		<link>https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-290</link>

		<dc:creator><![CDATA[Philippe Daouadi]]></dc:creator>
		<pubDate>Mon, 22 May 2017 14:11:00 +0000</pubDate>
		<guid isPermaLink="false">https://www.fluentcpp.com/?p=848#comment-290</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-283&quot;&gt;Jonathan Boccara&lt;/a&gt;.

Hi, Philippe here! Nice post, and nice solution. One inconvenient I see is that you basically need to compile your code twice (once per .templ.cpp), but maybe it&#039;s a small price to pay. It seems to me that this solution can be extended to handle the example case in my presentation by making the whole class template. And you don&#039;t even need C++11/14!
Anyway, I think it&#039;s a good solution. Have you tried it in a real project? I would be interested in your feedback if you do :)]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-283">Jonathan Boccara</a>.</p>
<p>Hi, Philippe here! Nice post, and nice solution. One inconvenient I see is that you basically need to compile your code twice (once per .templ.cpp), but maybe it&#8217;s a small price to pay. It seems to me that this solution can be extended to handle the example case in my presentation by making the whole class template. And you don&#8217;t even need C++11/14!<br />
Anyway, I think it&#8217;s a good solution. Have you tried it in a real project? I would be interested in your feedback if you do 🙂</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Boccara		</title>
		<link>https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-283</link>

		<dc:creator><![CDATA[Jonathan Boccara]]></dc:creator>
		<pubDate>Fri, 19 May 2017 10:56:00 +0000</pubDate>
		<guid isPermaLink="false">https://www.fluentcpp.com/?p=848#comment-283</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-282&quot;&gt;Loïc Yvonnet&lt;/a&gt;.

Yep I was at the meetup :) Indeed Mockaron answers the same need but with macro and not templates. And I&#039;ll certainly show this to Philippe to collect his feedback.
Thanks for your suggestions about concepts and modules - it will definitely be worth digging in that direction when they become more widely available!]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-282">Loïc Yvonnet</a>.</p>
<p>Yep I was at the meetup 🙂 Indeed Mockaron answers the same need but with macro and not templates. And I&#8217;ll certainly show this to Philippe to collect his feedback.<br />
Thanks for your suggestions about concepts and modules &#8211; it will definitely be worth digging in that direction when they become more widely available!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Loïc Yvonnet		</title>
		<link>https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-282</link>

		<dc:creator><![CDATA[Loïc Yvonnet]]></dc:creator>
		<pubDate>Thu, 18 May 2017 21:47:00 +0000</pubDate>
		<guid isPermaLink="false">https://www.fluentcpp.com/?p=848#comment-282</guid>

					<description><![CDATA[Interesting solution and blog post.
I think that C++ Concepts could help here. We could have an Argument concept, so that the expectations of ClassToBeTested would be cristal clear. Besides, Modules - as far as I understand - might help you with defining your template code in a cpp file. So maybe C++20 will bring further improvements to this solution.

By the way, to me, it looks a lot like a mock. Another solution presented at today&#039;s C++ Meetup is Mockaron, which has a quite different approach.]]></description>
			<content:encoded><![CDATA[<p>Interesting solution and blog post.<br />
I think that C++ Concepts could help here. We could have an Argument concept, so that the expectations of ClassToBeTested would be cristal clear. Besides, Modules &#8211; as far as I understand &#8211; might help you with defining your template code in a cpp file. So maybe C++20 will bring further improvements to this solution.</p>
<p>By the way, to me, it looks a lot like a mock. Another solution presented at today&#8217;s C++ Meetup is Mockaron, which has a quite different approach.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Boccara		</title>
		<link>https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-276</link>

		<dc:creator><![CDATA[Jonathan Boccara]]></dc:creator>
		<pubDate>Mon, 15 May 2017 12:45:00 +0000</pubDate>
		<guid isPermaLink="false">https://www.fluentcpp.com/?p=848#comment-276</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-275&quot;&gt;Vladislav Kaplan&lt;/a&gt;.

Good point Vladislav, it would be nice to find a way to express in the interface what types should be used.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-275">Vladislav Kaplan</a>.</p>
<p>Good point Vladislav, it would be nice to find a way to express in the interface what types should be used.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Vladislav Kaplan		</title>
		<link>https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-275</link>

		<dc:creator><![CDATA[Vladislav Kaplan]]></dc:creator>
		<pubDate>Mon, 15 May 2017 10:18:00 +0000</pubDate>
		<guid isPermaLink="false">https://www.fluentcpp.com/?p=848#comment-275</guid>

					<description><![CDATA[Thank you for the article. Disadvantage of this approach (make template method instead of virtual method for the test purposes), I think 
- difficult to read and understand, why is it template method in the first place and what are all possible instantiations
- difficult to make it virtual later]]></description>
			<content:encoded><![CDATA[<p>Thank you for the article. Disadvantage of this approach (make template method instead of virtual method for the test purposes), I think<br />
&#8211; difficult to read and understand, why is it template method in the first place and what are all possible instantiations<br />
&#8211; difficult to make it virtual later</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Boccara		</title>
		<link>https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-273</link>

		<dc:creator><![CDATA[Jonathan Boccara]]></dc:creator>
		<pubDate>Sun, 14 May 2017 00:37:00 +0000</pubDate>
		<guid isPermaLink="false">https://www.fluentcpp.com/?p=848#comment-273</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-271&quot;&gt;Karl Miller&lt;/a&gt;.

Thanks Karl! I mostly use gtest and you&#039;re right, testing is related to the refactoring necessary to improve the expressiveness of existing code, so it would make for a good topic. Thanks for the suggestion.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-271">Karl Miller</a>.</p>
<p>Thanks Karl! I mostly use gtest and you&#8217;re right, testing is related to the refactoring necessary to improve the expressiveness of existing code, so it would make for a good topic. Thanks for the suggestion.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Karl Miller		</title>
		<link>https://www.fluentcpp.com/2017/04/28/extract-interface-cpp/#comment-271</link>

		<dc:creator><![CDATA[Karl Miller]]></dc:creator>
		<pubDate>Sat, 13 May 2017 22:38:00 +0000</pubDate>
		<guid isPermaLink="false">https://www.fluentcpp.com/?p=848#comment-271</guid>

					<description><![CDATA[Hi, love your blog :) Just wondering what unit testing library/framework(s) you use? The answer is probably worth a blog post or two.]]></description>
			<content:encoded><![CDATA[<p>Hi, love your blog 🙂 Just wondering what unit testing library/framework(s) you use? The answer is probably worth a blog post or two.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
