t.cpp:53:14: error: volatile lvalue reference to type 'const volatile S' cannot
bind to a temporary of type 'const S'
assert (!is_lvalue(g()));
~~~~~~~~~^~~~~~~~~~~~~~~
t.cpp:14:52: note: expanded from macro 'is_lvalue'
#define is_lvalue(x) (sizeof(is_lvalue_helper((x), (x))) == 2)
^
/usr/include/assert.h:92:5: note: expanded from macro 'assert'
((expr) \
^~~~
t.cpp:12:76: note: passing argument to parameter here
...typename nondeducible<const volatile T&>::type))[2];
^
dC5jcHA6NTM6MTQ6IGVycm9yOiB2b2xhdGlsZSBsdmFsdWUgcmVmZXJlbmNlIHRvIHR5cGUgJ2NvbnN0IHZvbGF0aWxlIFMnIGNhbm5vdAogICAgICBiaW5kIHRvIGEgdGVtcG9yYXJ5IG9mIHR5cGUgJ2NvbnN0IFMnCiAgICBhc3NlcnQgKCFpc19sdmFsdWUoZygpKSk7CiAgICB+fn5+fn5+fn5efn5+fn5+fn5+fn5+fn4KdC5jcHA6MTQ6NTI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2lzX2x2YWx1ZScKI2RlZmluZSBpc19sdmFsdWUoeCkgKHNpemVvZihpc19sdmFsdWVfaGVscGVyKCh4KSwgKHgpKSkgPT0gMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovdXNyL2luY2x1ZGUvYXNzZXJ0Lmg6OTI6NTogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYXNzZXJ0JwogICgoZXhwcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBefn5+CnQuY3BwOjEyOjc2OiBub3RlOiBwYXNzaW5nIGFyZ3VtZW50IHRvIHBhcmFtZXRlciBoZXJlCiAgLi4udHlwZW5hbWUgbm9uZGVkdWNpYmxlPGNvbnN0IHZvbGF0aWxlIFQmPjo6dHlwZSkpWzJdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe