As of C++11, you can do what are called initializer lists. Essentially syntactic sugar (so you can safely ignore this comment):

it looks like this:
Material mat{     
 glm::vec3(0.1f, 0.1f, 0.1f),
 glm::vec3(0.7f, 0.5f, 0.7f),
 glm::vec3(0.1f, 0.2f, 0.1f),
 100.0f
};

You just have to make sure the order matches the order found in (M|m)aterial.h