https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122914
--- Comment #4 from YuFei Zhou <stuzyf at 163 dot com> ---
(In reply to Andrew Pinski from comment #2)
> That is if do:
> ```
> int main(){
> box<true> a;
> a.fun();
> }
> ```
> GCC will correctly reject the code.
>
> This is just a QOI issue where the dot operator is not rejected for a
> dependent pointer right away but only during instantiate.
>
> That is:
> ```
> template <class V>
> struct box{
> void fun(){
> a.value;
> }
> V *a;
> };
> ```
> Also be rejected.
Thanks for the explanation! I understand now.