-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Lets you embed C++ code into Haskell.
--   
--   Utilities to inline C++ code into Haskell using inline-c. See tests
--   for example on how to build.
@package inline-c-cpp
@version 0.2.1.0


-- | Module exposing a <a>Context</a> to inline C++ code. We only have used
--   this for experiments, so use with caution. See the C++ tests to see
--   how to build inline C++ code.
module Language.C.Inline.Cpp

-- | The equivalent of <a>baseCtx</a> for C++. It specifies the
--   <tt>.cpp</tt> file extension for the C file, so that g++ will decide
--   to build C++ instead of C. See the <tt>.cabal</tt> test target for an
--   example on how to build.
cppCtx :: Context

-- | Emits an <tt>using</tt> directive, e.g.
--   
--   <pre>
--   C.using "namespace std" ==&gt; using namespace std
--   </pre>
using :: String -> DecsQ


-- | A module that contains exception-safe equivalents of <tt>inline-c</tt>
--   QuasiQuoters.
module Language.C.Inline.Cpp.Exceptions

-- | An exception thrown in C++ code.
data CppException
CppStdException :: String -> CppException
CppOtherException :: CppException

-- | Similar to <a>block</a>, but C++ exceptions will be caught and
--   rethrown as <tt>ForeignException</tt>s. Unlike <a>block</a>, the
--   return type can only be <tt>void</tt> (and doesn't need to be
--   specified), but you can use <a>withPtr_</a> to extract a result
--   yourself.
--   
--   Using this will automatically include <tt>exception</tt>,
--   <tt>cstring</tt> and <tt>cstdlib</tt>.
catchBlock :: QuasiQuoter
instance GHC.Show.Show Language.C.Inline.Cpp.Exceptions.CppException
instance GHC.Classes.Ord Language.C.Inline.Cpp.Exceptions.CppException
instance GHC.Classes.Eq Language.C.Inline.Cpp.Exceptions.CppException
instance GHC.Exception.Exception Language.C.Inline.Cpp.Exceptions.CppException
