/**
  * Add role to buffer.
  *
  * @param member Relation member object where the length of the role
  *               will be set.
  * @param role The role.
  * @param length Length of role (without \0 termination).
  * @throws std:length_error If role is longer than osmium::max_osm_string_length
  */
 void add_role(osmium::RelationMember& member, const char* role, const size_t length) {
     if (length > osmium::max_osm_string_length) {
         throw std::length_error("OSM relation member role is too long");
     }
     member.set_role_size(osmium::string_size_type(length) + 1);
     add_size(append(role, osmium::memory::item_size_type(length)) + append_zero());
     add_padding(true);
 }
 /**
  * Add role to buffer.
  *
  * @param member Relation member object where the length of the role
  *               will be set.
  * @param role The role.
  * @param length Length of role string including \0 termination.
  */
 void add_role(osmium::RelationMember& member, const char* role, const string_size_type length) {
     member.set_role_size(length);
     add_size(append(role, length));
     add_padding(true);
 }