/* Copyright (c) 1997-2009
   Ewgenij Gawrilow, Michael Joswig (Technische Universitaet Darmstadt, Germany)
   http://www.polymake.de

   This program 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 2, or (at your option) any
   later version: http://www.gnu.org/licenses/gpl.txt.

   This program 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.
--------------------------------------------------------------------------------
   $Project: polymake $$Id: inlines.cc 9298 2009-09-02 23:10:56Z gawrilow $
*/

#include <ppair.h>
#include <converters.h>
#include <type_union.h>
#include <shared_object.h>
#include <sys/types.h>
#include <unistd.h>

namespace pm {
   void break_on_throw(const char* msg __attribute__((unused)) )
   {
#ifdef POLY_DEBUG
      if (msg[0] && getenv("POLYMAKE_DEBUG_CLIENTS") && getenv("POLYMAKE_ATTACH_DEBUGGER")) {
	 std::cerr << "Assertion failed: " << msg << "\n"
	              "Please attach the debugger to the process " << getpid() << "\n"
	              " or terminate it mit Control-C" << std::endl;
	 char c;
	 std::cin >> c;
      }
#endif
   }

   namespace virtuals {
      void _nop() {}
   }
   shared_object_secrets::rep<> shared_object_secrets::empty_rep;
   shared_pointer_secrets::rep shared_pointer_secrets::null_rep;
   double conv<double,bool>::global_epsilon=1e-7;
}

namespace std {
   pm::nothing pair<pm::nothing, pm::nothing>::first, pair<pm::nothing, pm::nothing>::second;
}
