<HTML><HEAD><TITLE>Samsung Enterprise Portal mySingle</TITLE>
<META content=IE=5 http-equiv=X-UA-Compatible>
<META content="text/html; charset=windows-1252" http-equiv=Content-Type>
<STYLE id=mysingle_style type=text/css>P {
        MARGIN-BOTTOM: 5px; FONT-SIZE: 9pt; FONT-FAMILY: Arial, arial; MARGIN-TOP: 5px
}
TD {
        MARGIN-BOTTOM: 5px; FONT-SIZE: 9pt; FONT-FAMILY: Arial, arial; MARGIN-TOP: 5px
}
LI {
        MARGIN-BOTTOM: 5px; FONT-SIZE: 9pt; FONT-FAMILY: Arial, arial; MARGIN-TOP: 5px
}
BODY {
        FONT-SIZE: 9pt; FONT-FAMILY: Arial, arial; MARGIN: 10px; LINE-HEIGHT: 1.4
}
</STYLE>

<META name=GENERATOR content=ActiveSquare></HEAD>
<BODY>
<P>Hi all,</P>
<P> </P>
<P>This is with respect to the following test case</P>
<P> </P>
<P>bool b;<BR>template <class T> auto f (T t) -> decltype(b?t:throw 42) { return 0; }<BR>template <class T> auto f2 (T t) -> decltype(b?t:throw) { return 0; }</P>
<P>int main()<BR>{<BR>  f(0);<BR>  f2(0);<BR>}</P><!--SP:chakshu.gro--><!--chakshu.gro:EP-->
<P> </P>
<P>g++ doesn't throw an error whereas clang complains on compiling. The error is </P>
<P>        "non-const lvalue reference to type 'int' cannot bind to a temporary of type 'int' ".</P>
<P>As far as my analysis goes, decltype(throw 42) returns void and decltype(t) returns T<BR>Now depending upon the Boolean b, return type of f and f2 are decided and as this is </P>
<P>non-constant without the knowledge of b, when clang tries to bind this with the value '0', </P>
<P>it throws this error.<BR>Is my above analysis correct or Am I missing something ? Is clang's behavior correct with respect to this test case?<BR>If not, please help me in understanding it better</P>
<P><BR>Thanks,<BR>Chakshu</P>
<TABLE id=confidentialsignimg>
<TBODY>
<TR>
<TD NAMO_LOCK>
<P><IMG border=0 src="cid:A6X7LP7KBSL8@namo.co.kr"></P></TD></TR></TBODY></TABLE></BODY></HTML><img src='http://ext.samsung.net/mailcheck/SeenTimeChecker?do=deb3de73a46b1d554b213a6f6a92a65562fdb69477d769fe41c8c4d357c4447bc400edea8930898a434c6ebf74e200ff220d3e02ce1cb961d6250c6ef56fc7aacf878f9a26ce15a0' border=0 width=0 height=0 style='display:none'>