On 8 November 2013 15:57, Andy Falanga (afalanga) wrote: > Hi all, > > I asked this question on Stack Overflow (http://stackoverflow.com/questions/19840937/should-stdunique-ptrvoid-be-permitted). The question, "Should std::unqiue_ptr<void> be permitted?" As is referenced in the SO article, consider this code: > > #include <iostream> > #include <memory> > > typedef std::unique_ptr<void> UniqueVoidPtr; > > int main() { > UniqueVoidPtr p(new int); > return 0; > } > > I am using cygwin G++ 4.5.3 for comparison. Using this compilation command, I receive no issues (complaints) from the compiler and the program runs without issue: > > g++ -Wall -std=c++0x -o <output> file.cpp Not on trunk, I fixed it last week: In file included from /home/redi/gcc/4.x/include/c++/4.9.0/memory:81:0, from up.cc:2: /home/redi/gcc/4.x/include/c++/4.9.0/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = void]’: /home/redi/gcc/4.x/include/c++/4.9.0/bits/unique_ptr.h:236:16: required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = void; _Dp = std::default_delete<void>]’ up.cc:7:28: required from here /home/redi/gcc/4.x/include/c++/4.9.0/bits/unique_ptr.h:72:2: error: static assertion failed: can't delete pointer to incomplete type static_assert(!is_void<_Tp>::value, ^