OSVR-Core
Public Types | Public Member Functions | Friends | List of all members
osvr::util::detail::CSVRowProxy< Derived > Class Template Reference

Returned by calls to .row() on a CSV object (you'll never need instantiate manually), and only really interacted with using the operator<< and cell() calls. More...

#include <CSV.h>

Public Types

using BaseCSVType = CSVBase< Derived >
 
using CSV = Derived
 
using type = CSVRowProxy< Derived >
 

Public Member Functions

 CSVRowProxy (CSVRowProxy const &)=delete
 non-copyable
 
CSVRowProxyoperator= (CSVRowProxy const &)=delete
 non-assignable
 
 CSVRowProxy (CSVRowProxy &&other)
 move constructible More...
 
 ~CSVRowProxy ()
 Destructor - finalizes the row in the CSV object if we've got some data and haven't been moved-from. More...
 
template<typename... CellArgs>
void add (Cell< CellArgs... > const &c)
 Main function, used by the operator<< to add your cell to the row in progress. More...
 

Friends

class CSVBase< Derived >
 

Detailed Description

template<typename Derived>
class osvr::util::detail::CSVRowProxy< Derived >

Returned by calls to .row() on a CSV object (you'll never need instantiate manually), and only really interacted with using the operator<< and cell() calls.

Intended only to survive a single statement, and for only one to be alive (for a given CSV object) at a time. You have been warned.

Constructor & Destructor Documentation

§ CSVRowProxy()

template<typename Derived>
osvr::util::detail::CSVRowProxy< Derived >::CSVRowProxy ( CSVRowProxy< Derived > &&  other)
inline

move constructible

When moving, don't let the moved-from proxy perform finalization of this row.

§ ~CSVRowProxy()

template<typename Derived>
osvr::util::detail::CSVRowProxy< Derived >::~CSVRowProxy ( )
inline

Destructor - finalizes the row in the CSV object if we've got some data and haven't been moved-from.

Todo:
Does it make sense to skip finalizing if we haven't had any data added? Think so...

Member Function Documentation

§ add()

template<typename Derived>
template<typename... CellArgs>
void osvr::util::detail::CSVRowProxy< Derived >::add ( Cell< CellArgs... > const &  c)
inline

Main function, used by the operator<< to add your cell to the row in progress.

All the non-type-dependent stuff is pulled out into separate methods to let the compiler optionally reduce code size.


The documentation for this class was generated from the following file: