Guest User

Untitled

a guest
Nov 23rd, 2018
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.97 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. void f(const char *&s) {
  4.     std::cout << __PRETTY_FUNCTION__ << '\n';
  5. }
  6.  
  7. template <std::size_t size>
  8. void f(const char (&s)[size]) {
  9.     std::cout << __PRETTY_FUNCTION__ << '\n';
  10. }
  11.  
  12. template <std::size_t size>
  13. void f(const char (*s)[size]) {
  14.     std::cout << __PRETTY_FUNCTION__ << '\n';
  15. }
  16.  
  17. void f(const volatile char * s) {
  18.     std::cout << __PRETTY_FUNCTION__ << '\n';
  19. }  
  20.  
  21. int main() {
  22.     const char* c = "foo";
  23.     f(c);
  24.     const char*const cc = "foo";
  25.     f(cc);
  26.    
  27.     f("foo");
  28.     char a[] = "fooington";
  29.     f(a);
  30.    
  31.     f(&"foo");
  32.     f(&a);
  33. }
  34.  
  35. /****** OUTPUT *********/
  36. clang++ -std=c++17 -g -Wall -Wextra -pedantic -fsanitize=undefined,address -Wno-unused-parameter -pthread main.cpp && ./a.out
  37. void f(const char *&)
  38. void f(const volatile char *)
  39. void f(const char (&)[size]) [size = 4]
  40. void f(const char (&)[size]) [size = 10]
  41. void f(const char (*)[size]) [size = 4]
  42. void f(const char (*)[size]) [size = 10]
Advertisement
Add Comment
Please, Sign In to add comment