adaptive: replace struct Attribute with class
Attribute is a class not a struct, this fixes the following warning in a number of places:
warning: struct 'Attribute' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags]