fork download
  1. #include <cstdio>
  2. #include <cstdlib>
  3. #include <utility>
  4. #include <new>
  5.  
  6. struct A {
  7. int i;
  8.  
  9. A( int i = 0 ) : i( i ) {}
  10. };
  11.  
  12. template<class T>
  13. struct New {
  14. template <class ... Args>
  15. static T* item( Args ... args ) {
  16. T *data = (T*)malloc( sizeof(T) );
  17. new(data) T( std::forward<Args>( args ) ... );
  18. return data;
  19. }
  20. };
  21.  
  22. int main() {
  23.  
  24. A* a = New<A>::item( 42 );
  25.  
  26. printf( "%i\n", a->i );
  27.  
  28. return 0;
  29. }
  30.  
Success #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
42