///////////////////////////////////////////////////////////////////////////////
//  Copyright 2008 Eric Niebler. Distributed under the Boost
//  Software License, Version 1.0. (See accompanying file
//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
///////////////////////////////////////////////////////////////////////////////

#if defined(__WAVE__) && defined(BOOST_PROTO_BUILDING_DOCS)
#pragma wave option(output:pop)
#endif

#ifndef BOOST_PROTO_SUFFIX_DUMMY_STRUCT_DEFINED
#define BOOST_PROTO_SUFFIX_DUMMY_STRUCT_DEFINED
/// INTERNAL ONLY
///
struct a_dummy_struct;
#endif
