$LET_OP_IMPLEMENTATION=<<END_OF_LET_OP_IMPLEMENTATION
ex & ${CONTAINER}::let_op(int const i)
{
- ASSERT(i>=0);
- ASSERT(i<nops());
+ GINAC_ASSERT(i>=0);
+ GINAC_ASSERT(i<nops());
${STLT}::iterator it=seq.begin();
for (int j=0; j<i; j++) {
$interface=<<END_OF_INTERFACE;
/** \@file ${CONTAINER}.h
*
- * Definition of GiNaC's ${CONTAINER}.
+ * Definition of GiNaC's ${CONTAINER}. */
+
+/*
* This file was generated automatically by container.pl.
* Please do not modify it directly, edit the perl script instead!
* container.pl options: \$CONTAINER=${CONTAINER}
#include <${STLHEADER}>
#include <ginac/basic.h>
+#include <ginac/ex.h>
+
+namespace GiNaC {
typedef ${STLHEADER}<ex> ${STLT};
extern const ${CONTAINER} some_${CONTAINER};
extern type_info const & typeid_${CONTAINER};
-// macros
+// utility functions
+inline const ${CONTAINER} &ex_to_${CONTAINER}(const ex &e)
+{
+ return static_cast<const ${CONTAINER} &>(*e.bp);
+}
-#define ex_to_${CONTAINER}(X) (static_cast<${CONTAINER} const &>(*(X).bp))
+} // namespace GiNaC
#endif // ndef __GINAC_${CONTAINER_UC}_H__
$implementation=<<END_OF_IMPLEMENTATION;
/** \@file ${CONTAINER}.cpp
*
- * Implementation of GiNaC's ${CONTAINER}.
+ * Implementation of GiNaC's ${CONTAINER}. */
+
+/*
* This file was generated automatically by container.pl.
* Please do not modify it directly, edit the perl script instead!
* container.pl options: \$CONTAINER=${CONTAINER}
#include "${CONTAINER}.h"
#include "ex.h"
+#include "debugmsg.h"
+
+namespace GiNaC {
${RESERVE_IMPLEMENTATION}
${CONTAINER}::${CONTAINER}(${STLT} * vp) : basic(TINFO_${CONTAINER})
{
debugmsg("${CONTAINER} constructor from ${STLT} *",LOGLEVEL_CONSTRUCT);
- ASSERT(vp!=0);
+ GINAC_ASSERT(vp!=0);
seq.swap(*vp);
delete vp;
}
bool ${CONTAINER}::has(ex const & other) const
{
- ASSERT(other.bp!=0);
+ GINAC_ASSERT(other.bp!=0);
if (is_equal(*other.bp)) return true;
for (${STLT}::const_iterator it=seq.begin(); it!=seq.end(); ++it) {
if ((*it).has(other)) return true;
int ${CONTAINER}::compare_same_type(basic const & other) const
{
- ASSERT(is_of_type(other,${CONTAINER}));
+ GINAC_ASSERT(is_of_type(other,${CONTAINER}));
${CONTAINER} const & o=static_cast<${CONTAINER} const &>
(const_cast<basic &>(other));
int cmpval;
bool ${CONTAINER}::is_equal_same_type(basic const & other) const
{
- ASSERT(is_of_type(other,${CONTAINER}));
+ GINAC_ASSERT(is_of_type(other,${CONTAINER}));
${CONTAINER} const & o=static_cast<${CONTAINER} const &>
(const_cast<basic &>(other));
if (seq.size()!=o.seq.size()) return false;
const ${CONTAINER} some_${CONTAINER};
type_info const & typeid_${CONTAINER}=typeid(some_${CONTAINER});
+} // namespace GiNaC
+
END_OF_IMPLEMENTATION
print "Creating interface file ${CONTAINER}.h...";