Q: How to show "unimplemented pure virtual" in visual studio 2015? I would like to show this warning/error on visual studio 2015 like that (in clang):
/home/travis/build/x/x/src/guiComboBox.cpp:454:19: error: 

      allocating an object of abstract class type 'GUIListBox'

                m_listbox = new GUIListBox(Environment, this, -1, r, fal...

                                ^

/usr/include/y/IGUIListBox.h:88:16: note: unimplemented pure virtual

      method 'setItemOverrideColor' in 'GUIListBox'

                virtual void setItemOverrideColor(u32 index, const video...

                             ^

/usr/include/y/IGUIListBox.h:91:16: note: unimplemented pure virtual

      method 'setItemOverrideColor' in 'GUIListBox'

                virtual void setItemOverrideColor(u32 index, EGUI_LISTBO...

I have this error in clang but not in visual studio 2015. Someone can help me?

A: Visual Studio will show the following error:
class Abstract
{
  virtual void NotImplemented() = 0;
};

int main()
{
  // error C2259 : 'Abstract' : cannot instantiate abstract class
  // note: due to following members :
  // note: 'void Abstract::NotImplemented(void)' : is abstract
  // note: see declaration of 'Abstract::NotImplemented'
  Abstract* a = new Abstract();

  return 0;
}


A: A C++ compiler is required to issue a diagnostic in this instance, and MSVC2015 conforms to that. So your difference is down to your not compiling what you think you're compiling.
If you want the IDE to flag up potential errors then you might be out of luck too. It's not possible in full generality to spot unimplemented pure virtual functions, due to the quirkiness of the C++ grammar (for the pub quiz try something based around the curiously recurring template pattern). Out of interest, it's an easy thing for a Java compiler to spot.

A: I found where is the problem. In travis, the version of the library and the prototypes of the methods of this class are differents. thank you for the help
