#include <iostream>
#include <type_traits>
using namespace std;
template <typename T, typename U>
struct decay_equiv :
std::is_same<typename std::decay<T>::type, U>::type
{};
int main() {
int A[][3] = {
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 },
{ 10, 11, 12 }
};
std::cout << std::boolalpha
<< decay_equiv<decltype(A), int(*)[3]>::value << '\n';
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4Kc3RydWN0IGRlY2F5X2VxdWl2IDogCiAgICBzdGQ6OmlzX3NhbWU8dHlwZW5hbWUgc3RkOjpkZWNheTxUPjo6dHlwZSwgVT46OnR5cGUgCnt9OwoKaW50IG1haW4oKSB7CgogICAgaW50IEFbXVszXSA9IHsKCQkJeyAxLCAyLCAzIH0sCgkJCXsgNCwgNSwgNiB9LAoJCQl7IDcsIDgsIDkgfSwKCQkJeyAxMCwgMTEsIDEyIH0KCX07CiAgICAKICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmJvb2xhbHBoYQogICAgICAgICAgICAgIDw8IGRlY2F5X2VxdWl2PGRlY2x0eXBlKEEpLCBpbnQoKilbM10+Ojp2YWx1ZSA8PCAnXG4nOwp9