This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/24595] New: std::tr1::get_deleter not declared
- From: "mbo at intec dot dk" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 31 Oct 2005 11:42:54 -0000
- Subject: [Bug libstdc++/24595] New: std::tr1::get_deleter not declared
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Version information:
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v
--enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr
--enable-shared --with-system-zlib --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --enable-nls
--program-suffix=-4.0 --enable-__cxa_atexit --enable-libstdcxx-allocator=mt
--enable-clocale=gnu --enable-libstdcxx-debug --enable-java-gc=boehm
--enable-java-awt=gtk --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr
--disable-werror --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.0.3 20051023 (prerelease) (Debian 4.0.2-3)
Command line options:
g++ -Wall -Werror -pedantic-errors
Compiler output:
listing8.cpp:5: error: 'std::tr1::get_deleter' has not been declared
listing8.cpp: In function 'int main()':
listing8.cpp:33: error: 'get_deleter' was not declared in this scope
listing8.cpp:33: error: expected primary-expression before 'void'
listing8.cpp:33: error: expected `)' before 'void'
Preprocessed source:
Omitted, since the file is 30893 lines.
Source (This source is a copy of an example in the October 2005 issue of C/C++
Users Journal):
#include <iostream>
#include <tr1/memory>
using std::tr1::shared_ptr;
using std::tr1::get_deleter;
using std::cout;
struct S;
void delete_it(S* obj);
/**
* @brief Class with private destructor
*/
class S {
friend void delete_it(S* obj);
~S() { cout << __PRETTY_FUNCTION__ << '\n'; }
};
/**
* @brief Destroys an S object
*/
void delete_it(S* obj)
{
delete obj;
}
/**
* @brief Demonstrate use of deleter
*/
int main()
{
shared_ptr<S> sp(new S, &delete_it);
if (get_deleter<void(*)(S*)>(sp))
cout << "has deleter of type void(*)(S*)\n";
else
cout << "doesn't have deleter of type void(*)(S*)\n";
return 0;
}
--
Summary: std::tr1::get_deleter not declared
Product: gcc
Version: 4.0.3
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mbo at intec dot dk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24595