fork(1) download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void foo(const bool is_int, const void* param) {
  6. if(is_int) {
  7. const int* const* ptr = param;
  8.  
  9. cout << "int**: " << *ptr << endl;
  10. } else {
  11. const double* ptr = param;
  12.  
  13. cout << "double*: " << *ptr << endl;
  14. }
  15. }
  16.  
  17. int main() {
  18. const auto int_num = 1020;
  19. const auto int_ptr = &int_num;
  20. const auto double_num = 1020.7;
  21. const auto double_ptr = &double_num;
  22.  
  23. foo(true, &int_ptr);
  24. //foo(true, reinterpret_cast<const void*>(&int_ptr));
  25. foo(false, double_ptr);
  26. //foo(false, reinterpret_cast<const void*>(double_ptr));
  27. }
Compilation error #stdin compilation error #stdout 0s 15232KB
stdin
Standard input is empty
compilation info
prog.cpp: In function ‘void foo(bool, const void*)’:
prog.cpp:7:30: error: invalid conversion from ‘const void*’ to ‘const int* const*’ [-fpermissive]
      const int* const* ptr = param;
                              ^~~~~
prog.cpp:11:26: error: invalid conversion from ‘const void*’ to ‘const double*’ [-fpermissive]
      const double* ptr = param;
                          ^~~~~
stdout
Standard output is empty