we need an autodiff library at some point (or we need to roll our own but I do not think that makes sense). CppAD is well tested and header only and easy to include. It is also Liscene compatible with GPL v3.0. Here we bring it in as a dependency
42 lines
1.4 KiB
C++
42 lines
1.4 KiB
C++
# ifndef CPPAD_LOCAL_IS_POD_HPP
|
|
# define CPPAD_LOCAL_IS_POD_HPP
|
|
/* --------------------------------------------------------------------------
|
|
CppAD: C++ Algorithmic Differentiation: Copyright (C) 2003-20 Bradley M. Bell
|
|
|
|
CppAD is distributed under the terms of the
|
|
Eclipse Public License Version 2.0.
|
|
|
|
This Source Code may also be made available under the following
|
|
Secondary License when the conditions for such availability set forth
|
|
in the Eclipse Public License, Version 2.0 are satisfied:
|
|
GNU General Public License, Version 2.0 or later.
|
|
---------------------------------------------------------------------------- */
|
|
// make sure size_t is defined because autotools version of
|
|
// is_pod_specialize_98 uses it
|
|
# include <cstddef>
|
|
|
|
/*!
|
|
\file is_pod.hpp
|
|
File that defines is_pod<Type>(void)
|
|
*/
|
|
namespace CppAD { namespace local { // BEGIN_CPPAD_LOCAL_NAMESPACE
|
|
/*!
|
|
Is this type plain old data; i.e., its constructor need not be called.
|
|
|
|
The default definition is false. This include file defines it as true
|
|
for all the fundamental types except for void and nullptr_t.
|
|
*/
|
|
template <class T> bool is_pod(void) { return false; }
|
|
// The following command suppresses doxygen processing for the code below
|
|
/// \cond
|
|
// C++98 Fundamental types
|
|
@is_pod_specialize_98@
|
|
|
|
// C++11 Fundamental types
|
|
@is_pod_specialize_11@
|
|
|
|
/// \endcond
|
|
} } // END_CPPAD_LOCAL_NAMESPACE
|
|
|
|
# endif
|