/* Copyright Bruno da Silva de Oliveira 2003. Use, modification and 
 distribution is subject to 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) 
 */
#ifndef HEADER_TEST_H
#define HEADER_TEST_H

#include <map>
#include <string>

namespace header_test {
    
enum choice { red, blue };

inline std::string choice_str(choice c)
{
    std::map<choice, std::string> choice_map;
    choice_map[red] = "red";
    choice_map[blue] = "blue";
    return choice_map[c];
}

struct C
{
    choice c;

    std::string get()
    {
        return choice_str(c);
    }
};

// test the exclusion of the following

struct ForwardDeclared; // should be excluded automatically
struct A {};
void foo();
enum bar { value };

}

#endif
