﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="thpdoc.xsl"?>
<page id="__defined" suffix=" Function">
  <subsection>Returns true if a given expression was defined.</subsection>
  <code>bool __defined(expression);</code>
  The <kw>__defined</kw>() function allows checking if a given declaration has been defined. It is useful when writing generic list-based code.
  <examples>
	<example>
		<code>class Class1
{
	typedef logic[4] Type;
}

class Class2
{
	typedef logic[8] Type;
	const int Val = 5;
}

entity Test
{
	generate dummy foreach(any c in __list(Class1, Class2))
	{
		generate inner if (__defined(c.Val))
		{
			signal c.Type sig = c.Val;
		}
		else
		{
			signal c.Type sig;
		}
	}
}</code>
	Generated VHDL code:
<code>entity Test is
end entity Test;

architecture Behavioral of Test is
	signal dummy_0_inner_case_2_sig : std_logic_vector(3 downto 0);
	signal dummy_1_inner_case_1_sig : std_logic_vector(7 downto 0) := X"05";
	
	begin
		
end architecture Behavioral;</code>
	</example>
  </examples>
  <seealso id="lists"/>
  <seealso id="foreach"/>
  <seealso id="generate"/>
</page>