fork download
  1. #include <iostream>
  2. #include <type_traits>
  3. #include <typeinfo>
  4.  
  5. struct Node {};
  6.  
  7. template <typename T>
  8. inline void Acquire_Store(T *ptr, typename std::remove_const<T>::type value)
  9. {
  10. std::cout << __PRETTY_FUNCTION__ << std::endl;
  11. std::cout << typeid(ptr).name() << std::endl;
  12. }
  13.  
  14. int main()
  15. {
  16. const Node *node = NULL;
  17. Acquire_Store(&node, static_cast<Node *> (NULL));
  18. const int a = 42;
  19. Acquire_Store (&a, 0);
  20. const int *b = &a;
  21. Acquire_Store (&b, static_cast<int *> (NULL) );
  22. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
void Acquire_Store(T*, typename std::remove_const<T>::type) [with T = const Node*; typename std::remove_const<T>::type = const Node*]
PPK4Node
void Acquire_Store(T*, typename std::remove_const<T>::type) [with T = const int; typename std::remove_const<T>::type = int]
PKi
void Acquire_Store(T*, typename std::remove_const<T>::type) [with T = const int*; typename std::remove_const<T>::type = const int*]
PPKi