Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C++ > typecast for me...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 1 of 5 Topic 43685 of 48020
Post > Topic >>

typecast for member function pointer

by icedac <icedac@[EMAIL PROTECTED] > Mar 5, 2008 at 12:17 AM

<code>
struct nullptr_t
{
	nullptr_t() : ptr_(0) {}

	// pointer
	template < typename T >
	operator T*() const
	{ return (T*)0; }

	// function pointer
	template < typename R >
	struct typedef_fun_ptr
	{
		typedef R (*type)();
	};
	template < typename R >
	operator typename typedef_fun_ptr<R>::type () const
	{
		return (typedef_fun_ptr<R>::type)0;
	}
	// arg1 ... arg10

	// for member function pointer (doesn't works)
	template < typename C, typename R >
	struct typedef_memfun_ptr
	{
		typedef R (C::*type)();
	};
	template < typename C, typename R >
	operator typename typedef_memfun_ptr<C,R>::type () const
	{
		return (typedef_memfun_ptr<C,R>::type)0;
	}
	// arg1 ... arg10

private:
	void*	ptr_;
};
const nullptr_t	nullptr;

</code>

this is my code for nullptr in C++98.
it works for normal pointers, function pointers but not for member
pointers.
anybody knows why it doesn't works?

sample code is follows
<code>
	int* p = nullptr;
	std::string* s = nullptr;
	void* vp = nullptr;
	assert( p == nullptr );
	assert( s == nullptr );
	assert( sizeof(nullptr) == sizeof(void*) );

//	int i = nullptr; // compile-time error: ok

	// function pointer
	int (*fptr1)() = nullptr;
	void* (*fptr2)() = nullptr;


	int (nullptr_test::*memfunp2)() =
nullptr.get_nullptr<nullptr_test,int>();
	int (nullptr_test::*memfunp3)() = nullptr; // don't works
</code>

the error message is
<error_msg>
1>d:\_work\qoom-sr\qoomserver\trunk\worldserver\asioserver
\win_main.cpp(162) : error C2440: 'initializing' : couln't convert
from 'const nullptr_t' to 'int (__thiscall nullptr_test::* )(void)'
</error_msg>
 




 5 Posts in Topic:
typecast for member function pointer
icedac <icedac@[EMAIL   2008-03-05 00:17:00 
Re: typecast for member function pointer
icedac <icedac@[EMAIL   2008-03-05 00:21:48 
Re: typecast for member function pointer
Barry <dhb2000@[EMAIL   2008-03-05 01:31:35 
Re: typecast for member function pointer
icedac <icedac@[EMAIL   2008-03-05 02:09:20 
Re: typecast for member function pointer
James Kanze <james.kan  2008-03-05 05:13:29 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Tue Oct 14 9:03:43 CDT 2008.