fork download
  1. #include <utility>
  2. #include <type_traits>
  3.  
  4. template<typename T, typename U>
  5. typename std::enable_if< std::is_convertible< U&&, T >::value >::type // not quite perfect
  6. assign( T* dest, U&& src ) {
  7. *dest = std::forward<U>(src);
  8. }
  9.  
  10. #include <iostream>
  11.  
  12. int main() {
  13. double d;
  14. assign( &d, 2 );
  15. std::cout << d << "\n";
  16. }
Success #stdin #stdout 0s 2896KB
stdin
Standard input is empty
stdout
2