From a9067eb46b845f70c9282bad59fbe6e8dba0e515 Mon Sep 17 00:00:00 2001 From: Benjamin Barenblat Date: Fri, 20 Dec 2013 13:57:39 -0800 Subject: Initial commit --- src/csv-inl.h | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/csv-inl.h (limited to 'src/csv-inl.h') diff --git a/src/csv-inl.h b/src/csv-inl.h new file mode 100644 index 0000000..c1b7cb9 --- /dev/null +++ b/src/csv-inl.h @@ -0,0 +1,58 @@ +/* csv-inl.h -- CSV utilities + * Copyright (C) 2013 Galois, Inc. + * + * This library is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) any later + * version. + * + * This library is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this library. If not, see . + * + * To contact Galois, complete the Web form at + * or write to Galois, Inc., 421 Southwest 6th Avenue, Suite 300, Portland, + * Oregon, 97204-1622. */ + +#ifndef PPAML_VREP_AUTOMOBILE_PLUGIN_CSV_INL_H +#define PPAML_VREP_AUTOMOBILE_PLUGIN_CSV_INL_H + +namespace csv { + + template + std::string fromContainer(const SequenceContainer &columns) { + std::ostringstream line; + for (typename SequenceContainer::const_iterator col = columns.begin(); + col != columns.end(); + col++) { + if (col != columns.begin()) { + line << ","; + } + line << *col; + } + return line.str(); + } + +} + +#ifndef HAVE_CXX11_INITIALIZER_LISTS + + template + std::list makeList(typename std::list::size_type size, ...) { + std::list result; + va_list args; + va_start(args, size); + for (typename std::list::size_type i = 0; i < size; i++) { + result.push_back(va_arg(args, T)); + } + va_end(args); + return result; + } + +#endif + +#endif -- cgit v1.2.3