![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@ranha どこと聞かれても困るけど、decayとかstandard type conversionとかそういう感じの定義があって、evaluateの時点で適用されるよって書いてあると思う
2011-04-21 16:23:42![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@ranha 6.3.2.1-2 If the lvalue has qualified type, the value has the unqualified version of the type of the lvalue; ...
2011-04-21 16:31:04![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@ranha 6.5.16.1-2 ... the value of right operand ... and the value stored in ...
2011-04-21 16:34:45![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@kikairoya 6.5.16.1-2にもright operandがconvertされる的な事が書いてるので成る程。しかし6.5.16.1-1のConstraints 2つめの"the type of the right"というのはどの段階のrightなのでしょうかという…
2011-04-21 16:35:01![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@ranha compatible with the type of the right の qualified or unqualified versionじゃないの
2011-04-21 16:37:15![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@kikairoya 例えばconst volatile struct S sである時に、fuga = s;で、ソモソモthe type of the rightが分かって無いとqualifiedもunqualifiedもないと思うのですが
2011-04-21 16:41:03![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
semanticsでassign expressionの型に変換するとあるしthe type of the rightはそうなのかと思ったけど、assign expressionの型てleft operandの型のunqualifiedだからcompatibleも何も無いんじゃ
2011-04-21 16:48:28![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@ranha unqualifiedと表現したらすべてのcvが消えるんだと思ったけど、qualified自体の定義が見当たらない
2011-04-21 16:52:27![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
qualified types, 6.2.5 , qualified version of type, 6.2.5ってIndexにも書いてるし多分大丈夫ですよね…
2011-04-21 16:54:47![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@ranha p92脚注94 the conversion changes lvalues to "the value of the expression" and thus removes any type qualifiers
2011-04-21 16:59:35![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@kikairoya 6.5.16-3を踏まえつつ6.5.16.1-2と注釈を更に踏まえて制約を読むと、本質としてvalue of the right operandがleft operandの修飾子消去した型にconvert出来ればOKて感じなんですかね
2011-04-21 17:11:36![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
value of the right operandは多分これも修飾子消去されてるから、つまりa = bでbの修飾子無視した型から修飾子無視したaの型へのconvertが定義されていれば、a=bもソレに従って定義されるって感じかな
2011-04-21 17:13:08![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@ranha はい。assignment operatorが興味あるのは、leftのobject storageとrightのvalueだけで、valueは常にunqualifiedだから、unqualified type of leftも常にunqualifiedとなる、はず。
2011-04-21 17:13:51