<commit_before>#ifndef EPA_PLACEMENT_SET_H_
#define EPA_PLACEMENT_SET_H_

#include "Placement.hpp"

class Placement_Set {
public:
  typedef Placement                                        value_type;
  typedef typename std::vector<Placement>::iterator        iterator;
  typedef typename std::vector<Placement>::const_iterator  const_iterator;

  Placement_Set();
  Placement_Set(const unsigned int size);
  ~Placement_Set();

  // member access
  inline Placement& back() {return placements_.back();};
  inline unsigned int size() {return placements_.size();};
  // TODO shoudl pass in variadic fashion
  inline void emplace_back(const unsigned int size, const Sequence& s) {placements_.emplace_back(size, s);};

  //Iterator Compatability
  inline iterator begin() {return placements_.begin();};
  inline iterator end() {return placements_.end();};
  inline const_iterator begin() const {return placements_.cbegin();};
  inline const_iterator end() const {return placements_.cend();};
  inline const_iterator cbegin() {return placements_.cbegin();};
  inline const_iterator cend() {return placements_.cend();};<commit_msg>made emplace_back variadic<commit_after>#ifndef EPA_PLACEMENT_SET_H_
#define EPA_PLACEMENT_SET_H_

#include "Placement.hpp"

#include <utility>

class Placement_Set {
public:
  typedef Placement                                        value_type;
  typedef typename std::vector<Placement>::iterator        iterator;
  typedef typename std::vector<Placement>::const_iterator  const_iterator;

  Placement_Set();
  Placement_Set(const unsigned int size);
  ~Placement_Set();

  // member access
  inline Placement& back() {return placements_.back();};
  inline unsigned int size() {return placements_.size();};

  // needs to be in the header
  template<typename ...Args> void emplace_back(Args && ...args)
  {
    placements_.emplace_back(std::forward<Args>(args)...);
  };

  // Iterator Compatability
  inline iterator begin() {return placements_.begin();};
  inline iterator end() {return placements_.end();};
  inline const_iterator begin() const {return placements_.cbegin();};
  inline const_iterator end() const {return placements_.cend();};
  inline const_iterator cbegin() {return placements_.cbegin();};
  inline const_iterator cend() {return placements_.cend();};
{'fraction_non_alphanumeric': 0.11885067479320853, 'fraction_numerical': 0.0, 'mean_word_length': 4.537349397590361, 'pattern_counts': {'":': 0, '<': 10, '<?xml version=': 0, '>': 10, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2187059', 'n_tokens_mistral': 667, 'n_tokens_neox': 647, 'n_words': 178}