Why am i getting a error when i try to static cast a element* to an int
typedef Element* ElementPtr
int Element::getVP (ElementPtr item)
{
return static_cast <int>(item); // I have a class called Element
}
Why am i getting a error when i try to static cast a element* to an int
typedef Element* ElementPtr
int Element::getVP (ElementPtr item)
{
return static_cast <int>(item); // I have a class called Element
}
 
    
    Not really sure what's your question, but I feel you want implicit conversion function.
To convert Element to int, you want operator int()
struct Element
{
  operator int()
  {
    return i;
  }
  int i;
};
int Element::getVP (Element* item)
{
  return (*item); // I have a class called Element
}
But it's still not clear why you need getVP in Element class.
It' just to show you how to convert struct/class to int type. I'll delete my answer if it's not what you want.
 
    
    Assuming you're trying to get a int from the Element and you have already overloaded the cast operator of the Element class like so:
operator int() { return m_some_int; }
you can use (assuming item is a pointer)
return (int)(*item);
Instead, if you're trying to get the address of the pointer you can do the following:
std::size_t Element::get_address(Element* item)
{
    return reinterpret_cast<std::size_t>(item);
}
