<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Apollo Systems Contracts &#187; embedded software</title>
	<atom:link href="http://www.apollo-systems.co.uk/dev/tag/embedded-software/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.apollo-systems.co.uk/dev</link>
	<description>Embedded Software Consultants</description>
	<lastBuildDate>Wed, 03 Mar 2021 08:59:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Embedded C++ Compiler Limitations</title>
		<link>http://www.apollo-systems.co.uk/dev/2011/embedded-c-compiler-limitations/</link>
		<comments>http://www.apollo-systems.co.uk/dev/2011/embedded-c-compiler-limitations/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 15:23:45 +0000</pubDate>
		<dc:creator>Greg Philpott</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[embedded C++]]></category>
		<category><![CDATA[embedded software]]></category>
		<category><![CDATA[embedded systems]]></category>
		<category><![CDATA[Embunit]]></category>

		<guid isPermaLink="false">http://www.apollo-systems.co.uk/dev/?p=313</guid>
		<description><![CDATA[<p>These days there are many C++ compilers available for developing embedded software.  However, they often provide a restricted set of language features, or have the facility to switch-off certain features. Some examples are given below, and from these it seems the feature most likely to be omitted is exception handling.</p> ARM <p>ARM’s C++ compiler has &#8230; </p><p><a class="more-link block-button" href="http://www.apollo-systems.co.uk/dev/2011/embedded-c-compiler-limitations/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>These days there are many C++ compilers available for developing embedded software.  However, they often provide a restricted set of language features, or have the facility to switch-off certain features. Some examples are given below, and from these it seems the feature most likely to be omitted is <strong>exception handling</strong>.</p>
<div class="important_block">The unit testing tool being developed by Apollo Systems Contracts supports <strong>exception handling</strong> (including testing that exceptions are generated and detecting uncaught exceptions). However exception handling can be disabled, making it compatible with <strong>&#8216;Embedded C++&#8217;</strong> as defined below.</div>
<h2>ARM</h2>
<p>ARM’s C++ compiler has exceptions disabled by default.</p>
<h2>IAR</h2>
<p>IAR’s compiler supports exceptions, but can also be run in ‘Embedded C++’ mode (see below), or their own rather less-restricted ‘Extended Embedded C++’ mode (just lacks RTTI and Exceptions).</p>
<h2>Embedded C++</h2>
<p>The <a title="Embedded C++" href="http://en.wikipedia.org/wiki/Embedded_C%2B%2B" target="_blank">Embedded C++</a> language (EC++) lacks the following features:</p>
<ul>
<li>Multiple inheritance</li>
<li>Virtual base classes</li>
<li>Run-time type information (RTTI)</li>
<li>New style casts (static_cast, dynamic_cast, reinterpret_cast, and const_cast)</li>
<li>The mutable type qualifier</li>
<li>Namespaces</li>
<li>Exceptions</li>
<li>Templates</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.apollo-systems.co.uk/dev/2011/embedded-c-compiler-limitations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
