title: Is this use of the "," operator considered bad form?
body: <p>I have made a list class as a means of replacing variadic functions in my program used for initializing objects that need to contain a changing list of elements. The list class has a usage syntax that I really like. However I haven't seen it used before, so I was wondering if I shouldn't use it just because of that fact? A basic implementation of the list class looks like this...</p>
  
  <pre><code>#include &lt;list&gt;
  #include &lt;iostream&gt;
  template&lt;typename T&gt;
  struct list
  {
      std::list&lt;T&gt; items;
      list(const list&amp;ref):items(ref.items){}
      list(){}
      list(T var){items.push_back(var);}
      list&amp; operator,(list add_){
          items.insert(items.end(),add_.items.begin(), add_.items.end());
          return *this;
      }
      list&amp; operator=(list add_){
          items.clear();
          items.insert(items.end(),add_.items.begin(), add_.items.end());
          return *this;
      }
      list&amp; operator+=(list add_){
          items.insert(items.end(),add_.items.begin(), add_.items.end());
          return *this;
      }
  };
  </code></pre>
  
  <p>This allows me to have use this in code like so...</p>
  
  <pre><code>struct music{
  //...
  };
  struct music_playlist{
      list&lt;music&gt; queue;
  //...
  };
  int main (int argc, const char * argv[])
  {
      music_playlist playlist;
      music song1;
      music song2;
      music song3;
      music song4;
      playlist.queue = song1,song2; // The queue now contains song1 and song2
      playlist.queue+= song1,song3,song4; //The queue now contains two song1s and song2-4
      playlist.queue = song2; //the queue now only contains song2
      return 0;
  }
  </code></pre>
  
  <p>I really think that the syntax is much nicer than it would of been if I had just exposed a regular stl container, and even nicer (and typesafe) than variadic functions. However, since I have not seen this syntax used, I am curious about whether I should avoid it, because above all the code should be easily understood by other programmers?</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p>In joint with this question, I have posted this <a href="https://stackoverflow.com/questions/6729977/what-is-a-good-typesafe-alternative-to-variadic-functions-in-c">question</a> more targeted at solutions to the actual problem. </p>