I\'m looking through the source of a library and many classes are defined using the following form
class THING_API ClassName
{
...
Jumping
One possible use would be to allow you to conditionally mark the class as callable from other libraries in a cross-platform library.
class ClassName
would be callable on Windows using MSVC but you'd need
class __attribute__ ((visibility("default"))) ClassName
for linux using gcc.
In this case, THING_API might be defined like
#ifdef _WIN32
# define THING_API
#else
# define THING_API __attribute__ ((visibility("default")))
#endif