Yes. I checked it. For example, in this file: https://github.com/hushell/shogun/blob/develop/src/shogun/structure/MAPInference.h
at line 79, if you change this line to: 

virtual void loss_augmentation(SGVector<int32_t> states_gt,
    SGVector<float64_t> loss = SGVector<float64_t>());

then the class MAPInference will not be listed in the generated class_list.cpp, the reason is it being detected as an abstract class. I went into the class_list.cpp.py, I found it detected the line 133 in MAPInference.h has " = 0;" . So it consider MAPInference as an abstract class, but actually it is not. It checks virtual functions outside "{ }" of MAPInference.