From: <ma...@us...> - 2009-08-11 20:06:32
|
Revision: 11535 http://swig.svn.sourceforge.net/swig/?rev=11535&view=rev Author: matevz Date: 2009-08-11 20:06:23 +0000 (Tue, 11 Aug 2009) Log Message: ----------- Added testcase for default/delete arguments introduced in C++0x. Modified Paths: -------------- branches/gsoc2009-matevz/Examples/test-suite/common.mk Added Paths: ----------- branches/gsoc2009-matevz/Examples/test-suite/cpp0x_default_delete.i Modified: branches/gsoc2009-matevz/Examples/test-suite/common.mk =================================================================== --- branches/gsoc2009-matevz/Examples/test-suite/common.mk 2009-08-11 19:44:03 UTC (rev 11534) +++ branches/gsoc2009-matevz/Examples/test-suite/common.mk 2009-08-11 20:06:23 UTC (rev 11535) @@ -413,7 +413,8 @@ cpp0x_alternate_function_syntax \ cpp0x_userdefined_literals \ cpp0x_decltype \ - cpp0x_result_of + cpp0x_result_of \ + cpp0x_default_delete # cpp0x_template_typedefs # not supported by any compiler yet # cpp0x_hash_types # not fully implemented yet # cpp0x_constructors # not supported by any compiler yet Added: branches/gsoc2009-matevz/Examples/test-suite/cpp0x_default_delete.i =================================================================== --- branches/gsoc2009-matevz/Examples/test-suite/cpp0x_default_delete.i (rev 0) +++ branches/gsoc2009-matevz/Examples/test-suite/cpp0x_default_delete.i 2009-08-11 20:06:23 UTC (rev 11535) @@ -0,0 +1,22 @@ +%module cpp0x_default_delete + +%{ +#include <stdlib.h> + +class NonCopyable { +public: + NonCopyable & operator=(const NonCopyable&) = delete; /* Removes operator= */ + NonCopyable(const NonCopyable&) = delete; /* Removed copy constructor */ + NonCopyable() = default; /* Explicitly allows the empty constructor */ + void *operator new(size_t) = delete; /* Removes new NonCopyable */ +}; + +struct A1 { + void f(int i); + void f(double i) = delete; /* Don't cast double to int. Compiler returns an error */ +}; +struct A2 { + void f(int i); + template<class T> void f(T) = delete; /* Only accept int */ +}; +%} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |