#include <iostream>
#include <type_traits>
int main() {
int i;
int *p1 = &i, *const p2 = &i; // OK
std::cout << std::is_const< decltype(p1) >::value << '\n'; // 0
std::cout << std::is_const< decltype(p2) >::value << '\n'; // 1
int *const p3 = &i, *p4 = &i; // OK
std::cout << std::is_const< decltype(p3) >::value << '\n'; // 1
std::cout << std::is_const< decltype(p4) >::value << '\n'; // 0
int const l = i, m = i; // OK
std::cout << std::is_const< decltype(l) >::value << '\n'; // 1
std::cout << std::is_const< decltype(m) >::value << '\n'; // 1
//int j = i, const k = i; // error: expected unqualified-id before ‘const’
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+CgppbnQgbWFpbigpIHsKCWludCBpOwoJCglpbnQgKnAxID0gJmksICpjb25zdCBwMiA9ICZpOyAvLyBPSwoJc3RkOjpjb3V0IDw8IHN0ZDo6aXNfY29uc3Q8IGRlY2x0eXBlKHAxKSA+Ojp2YWx1ZSA8PCAnXG4nOyAvLyAwCglzdGQ6OmNvdXQgPDwgc3RkOjppc19jb25zdDwgZGVjbHR5cGUocDIpID46OnZhbHVlIDw8ICdcbic7IC8vIDEKCQoJaW50ICpjb25zdCBwMyA9ICZpLCAqcDQgPSAmaTsgLy8gT0sKCXN0ZDo6Y291dCA8PCBzdGQ6OmlzX2NvbnN0PCBkZWNsdHlwZShwMykgPjo6dmFsdWUgPDwgJ1xuJzsgLy8gMQoJc3RkOjpjb3V0IDw8IHN0ZDo6aXNfY29uc3Q8IGRlY2x0eXBlKHA0KSA+Ojp2YWx1ZSA8PCAnXG4nOyAvLyAwCgkKCWludCBjb25zdCBsID0gaSwgbSA9IGk7IC8vIE9LCglzdGQ6OmNvdXQgPDwgc3RkOjppc19jb25zdDwgZGVjbHR5cGUobCkgPjo6dmFsdWUgPDwgJ1xuJzsgLy8gMQoJc3RkOjpjb3V0IDw8IHN0ZDo6aXNfY29uc3Q8IGRlY2x0eXBlKG0pID46OnZhbHVlIDw8ICdcbic7IC8vIDEKCQoJLy9pbnQgaiA9IGksIGNvbnN0IGsgPSBpOyAvLyBlcnJvcjogZXhwZWN0ZWQgdW5xdWFsaWZpZWQtaWQgYmVmb3JlIOKAmGNvbnN04oCZCn0=