fork(1) download
  1. #include <iostream>
  2.  
  3. void test(const char* p)
  4. {
  5. char c = *p; // 1
  6. std::cout << p << std::endl;
  7. }
  8.  
  9. template <typename T>
  10. void test_tmp(T&& x)
  11. {
  12. auto aa = (T&&)x; //追加 1 <= これでアクセス違反
  13. auto bb = static_cast<T&&>(x); //追加 2 <= OK
  14. test(x); // 2
  15. test((T&&)x); // 3
  16. }
  17.  
  18.  
  19. int main() {
  20. typedef const char* const_char_p;
  21. test("NHK"); // 4
  22. test((const_char_p&&)"JCB"); // 5
  23. test_tmp("JiNS"); // 6
  24. // VC だと 6 => 3 => 1 の呼び出しでアクセス違反終了
  25. return 0;
  26. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
NHK
JCB
JiNS
JiNS