Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:54:49

0001 //----------------------------------*-C++-*----------------------------------//
0002 // Copyright 2023-2024 UT-Battelle, LLC, and other Celeritas developers.
0003 // See the top-level COPYRIGHT file for details.
0004 // SPDX-License-Identifier: (Apache-2.0 OR MIT)
0005 //---------------------------------------------------------------------------//
0006 //! \file corecel/math/QuantityIO.hh
0007 //---------------------------------------------------------------------------//
0008 #pragma once
0009 
0010 #include <ostream>
0011 
0012 #include "Quantity.hh"
0013 
0014 namespace celeritas
0015 {
0016 //---------------------------------------------------------------------------//
0017 /*!
0018  * Output an quantity with its label.
0019  */
0020 template<class UnitT, class ValueT>
0021 std::ostream& operator<<(std::ostream& os, Quantity<UnitT, ValueT> const& q)
0022 {
0023     static_assert(sizeof(UnitT::label()) > 0,
0024                   "Unit does not have a 'label' definition");
0025     os << q.value() << " [" << UnitT::label() << ']';
0026     return os;
0027 }
0028 
0029 //---------------------------------------------------------------------------//
0030 }  // namespace celeritas