Running the command shown at the bottom of this email reveals that various different signatures of CanReadFile are present in VTK.<br><br>Is there a preferred one that all readers should aspire to?<br><br>Should it be "static" or "virtual"?<br>
<br>In the case of classes that inherit from each other, it should be the same, shouldn't it?<br><br>The particular case that I have a beef with is<br>./IO/vtkEnSightMasterServerReader.h:  int CanReadFile(const char *fname);<br>

<br>which inherits from:<br>./IO/vtkGenericEnSightReader.h:  static int CanReadFile(const char *casefilename);<br>
<br>Because the child class method is not static, I get a "hides parent method" warning when building ActiViz .NET.<br>Would the owner of this class mind if the method became static...? Or is that not advisable for backwards compatibility reasons...?<br>
<br><br>Thanks,<br>David C.<br><br><br>Details:<br><br>$ find . | grep "\.h$" | xargs grep CanReadFile<br>./Hybrid/vtkExodusIIReader.h:  int CanReadFile(const char* fname);<br>./Hybrid/vtkExodusReader.h:  int CanReadFile(const char* fname);<br>
./Hybrid/vtkFacetReader.h:  static int CanReadFile(const char *filename);<br>./Hybrid/vtkLSDynaReader.h:  int CanReadFile( const char* fname );<br>./IO/vtkBMPReader.h:  virtual int CanReadFile(const char* fname);<br>./IO/vtkBYUReader.h:  static int CanReadFile(const char *filename);<br>
./IO/vtkDICOMImageReader.h:  virtual int CanReadFile(const char* fname);<br>./IO/vtkEnSightMasterServerReader.h:  int CanReadFile(const char *fname);<br>./IO/vtkGenericEnSightReader.h:  static int CanReadFile(const char *casefilename);<br>
./IO/vtkGESignaReader.h:  virtual int CanReadFile(const char* fname);<br>./IO/vtkImageReader2.h:  virtual int CanReadFile(const char* vtkNotUsed(fname))<br>./IO/vtkImageReader2Factory.h:// object given a path name to a file.  It calls CanReadFile on all<br>
./IO/vtkJPEGReader.h:  int CanReadFile(const char* fname);<br>./IO/vtkMetaImageReader.h:  virtual int CanReadFile(const char* name);<br>./IO/vtkMINCImageReader.h:  virtual int CanReadFile(const char* name);<br>./IO/vtkNetCDFCFReader.h:  static int CanReadFile(const char *filename);<br>
./IO/vtkOpenFOAMReader.h:  int CanReadFile(const char *);<br>./IO/vtkPLYReader.h:  static int CanReadFile(const char *filename);<br>./IO/vtkPNGReader.h:  virtual int CanReadFile(const char* fname);<br>./IO/vtkPNMReader.h:  int CanReadFile(const char* fname);<br>
./IO/vtkSLACParticleReader.h:  static int CanReadFile(const char *filename);<br>./IO/vtkSLACReader.h:  static int CanReadFile(const char *filename);<br>./IO/vtkSLCReader.h:  int CanReadFile(const char* fname);<br>./IO/vtkTIFFReader.h:  virtual int CanReadFile(const char* fname);<br>
./IO/vtkXMLCompositeDataReader.h:  virtual int CanReadFileVersion(int major, int vtkNotUsed(minor))<br>./IO/vtkXMLReader.h:  virtual int CanReadFile(const char* name);<br>./IO/vtkXMLReader.h:  virtual int CanReadFileVersion(int major, int minor);<br>
./IO/vtkXMLReader.h:  int CanReadFileVersionString(const char* version);<br>./IO/vtkXYZMolReader.h:  virtual int CanReadFile(const char* name);<br>./Parallel/vtkPDataSetReader.h:  int CanReadFile(const char* filename);<br>
./Parallel/vtkPNrrdReader.h:  virtual int CanReadFile(const char *filename);<br><br>