fork download
  1. #include <type_traits>
  2.  
  3. /* Указатель на функцию void (void) */
  4. typedef void (*base_func_ptr_t)(void);
  5.  
  6. /* Указатель на массив из десяти base_func_ptr_t */
  7. typedef base_func_ptr_t (*arr_ptr_t)[10];
  8.  
  9. /* Указатель на функцию, которая принимает и возвращает указатель
  10.  * на массив из десяти base_func_ptr_t */
  11. arr_ptr_t (*fptr)(arr_ptr_t);
  12.  
  13. void (* (* (*ffptr)(void (* (*)[10])()))[10])();
  14.  
  15. int main()
  16. {
  17. static_assert( std::is_same<decltype(fptr), decltype(ffptr)>::value == true, "oops!" );
  18. }
Success #stdin #stdout 0s 2848KB
stdin
Standard input is empty
stdout
Standard output is empty