title: Don't understand error messages for numeric_std to_unsigned function call, selected signal assignment
body: <p>I designed a simple shifter but I got an error, I applied different lots of things to solve, then it hasn't been fixed.</p>
  <pre><code>library IEEE;
  use IEEE.STD_LOGIC_1164.ALL;
  --use IEEE.STD_LOGIC_UNSIGNED.ALL;
  use IEEE.NUMERIC_STD.ALL;
  --use ieee.std_logic_unsigned.all;
  
  
  entity shifter is
      Port ( inp          : in STD_LOGIC_VECTOR(7 downto 0);
             shift_cntrl  : in STD_LOGIC_VECTOR(1 downto 0);
             shift_out    : out STD_LOGIC_VECTOR(15 downto 0));
  end shifter;
  
  architecture Behavioral of shifter is
  begin
  process(shift_cntrl, inp) begin
      with shift_cntrl select  
         shift_out &lt;= STD_LOGIC_VECTOR(to_unsigned(inp, shift_out'LENGTH) sll 4) when &quot;01&quot;, 
                      STD_LOGIC_VECTOR(to_unsigned(inp, shift_out'LENGTH) sll 8) when &quot;10&quot;,  
                      inp when others;
                      
  end process;
  end Behavioral;
  </code></pre>
  <p>VHDL error messages:</p>
  <pre class="lang-none prettyprint-override"><code>[Synth 8-2778] type error near inp ; expected type natural [shifter.vhd:18]
  [Synth 8-2778] type error near inp ; expected type natural [shifter.vhd:19]
  [Synth 8-2757] this construct is only supported in VHDL 1076-2008 [shifter.vhd:20]
  </code></pre>