template<typename T>
class some_class {
public:
some_class() {
}
template<typename U>
some_class(some_class<U> &other) {
}
};
int main() {
some_class<int> a;
// Works OK!
const some_class<int> const_b = a;
some_class<const int> const_c = a;
some_class<int> d = const_c;
return 0;
}
dGVtcGxhdGU8dHlwZW5hbWUgVD4KY2xhc3Mgc29tZV9jbGFzcyB7CnB1YmxpYzoKICAgIHNvbWVfY2xhc3MoKSB7CiAgICB9CgogICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KICAgIHNvbWVfY2xhc3Moc29tZV9jbGFzczxVPiAmb3RoZXIpIHsKICAgIH0KfTsKCmludCBtYWluKCkgewogICAgc29tZV9jbGFzczxpbnQ+IGE7CgogICAgLy8gV29ya3MgT0shCiAgICBjb25zdCBzb21lX2NsYXNzPGludD4gY29uc3RfYiA9IGE7CgogICAgc29tZV9jbGFzczxjb25zdCBpbnQ+IGNvbnN0X2MgPSBhOwogICAgCglzb21lX2NsYXNzPGludD4gZCA9IGNvbnN0X2M7CgkKICAgIHJldHVybiAwOwp9