-- 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.3.0.1


-- | 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 :: Maybe String -> CppException

-- | Like <a>tryBlock</a>, but will throw <a>CppException</a>s rather than
--   returning them in an <a>Either</a>
throwBlock :: QuasiQuoter

-- | Similar to <a>block</a>, but C++ exceptions will be caught and the
--   result is (Either CppException value). The return type must be void or
--   constructible with <tt>{}</tt>. Using this will automatically include
--   <tt>exception</tt>, <tt>cstring</tt> and <tt>cstdlib</tt>.
tryBlock :: QuasiQuoter

-- | Variant of <a>throwBlock</a> for blocks which return <a>void</a>.
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.Type.Exception Language.C.Inline.Cpp.Exceptions.CppException
