id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 1892,boost::spirit::static_ causes link error (using wave),anonymous,Joel de Guzman,"When using wave, I encounter a link error when attempting to #include wave headers in more than one translation unit. Although this is via use of wave, I believe it is due to a breaking change in spirit. There is no error in 1.34. This effectively renders wave/spirit next to useless as it forces users to use one source file in their projects. The link error text is (vs2005): 1>token_output.obj : error LNK2005: ""public: __thiscall `public: __thiscall boost::spirit::static_ >,class boost::wave::util::time_conversion::time_conversion_grammar,class boost::spirit::scanner,struct boost::spirit::match_policy,struct boost::spirit::action_policy> > > > >,class boost::spirit::impl::get_definition_static_data_tag>::static_ >,class boost::wave::util::time_conversion::time_conversion_grammar,class boost::spirit::scanner,struct boost::spirit::match_policy,struct boost::spirit::action_policy> > > > >,class boost::spirit::impl::get_definition_static_data_tag>(class boost::spirit::impl::get_definition_static_data_tag)'::`2'::destructor::~destructor(void)"" (??1destructor@?1???0?$static_@V?$thread_specific_ptr@V?$weak_ptr@U?$grammar_helper@U?$grammar@Vtime_conversion_grammar@time_conversion@util@wave@boost@@U?$parser_context@Unil_t@spirit@boost@@@spirit@5@@spirit@boost@@Vtime_conversion_grammar@time_conversion@util@wave@3@V?$scanner@PBDU?$scanner_policies@U?$skipper_iteration_policy@Uiteration_policy@spirit@boost@@@spirit@boost@@Umatch_policy@23@Uaction_policy@23@@spirit@boost@@@23@@impl@spirit@boost@@@boost@@@boost@@Vget_definition_static_data_tag@impl@spirit@2@@spirit@boost@@QAE@Vget_definition_static_data_tag@impl@23@@Z@QAE@XZ) already defined in scramble.obj 1>token_output.obj : error LNK2005: ""public: static void __cdecl `public: __thiscall boost::spirit::static_ >,class boost::wave::util::time_conversion::time_conversion_grammar,class boost::spirit::scanner,struct boost::spirit::match_policy,struct boost::spirit::action_policy> > > > >,class boost::spirit::impl::get_definition_static_data_tag>::static_ >,class boost::wave::util::time_conversion::time_conversion_grammar,class boost::spirit::scanner,struct boost::spirit::match_policy,struct boost::spirit::action_policy> > > > >,class boost::spirit::impl::get_definition_static_data_tag>(class boost::spirit::impl::get_definition_static_data_tag)'::`3'::default_ctor::construct(void)"" (?construct@default_ctor@?2???0?$static_@V?$thread_specific_ptr@V?$weak_ptr@U?$grammar_helper@U?$grammar@Vtime_conversion_grammar@time_conversion@util@wave@boost@@U?$parser_context@Unil_t@spirit@boost@@@spirit@5@@spirit@boost@@Vtime_conversion_grammar@time_conversion@util@wave@3@V?$scanner@PBDU?$scanner_policies@U?$skipper_iteration_policy@Uiteration_policy@spirit@boost@@@spirit@boost@@Umatch_policy@23@Uaction_policy@23@@spirit@boost@@@23@@impl@spirit@boost@@@boost@@@boost@@Vget_definition_static_data_tag@impl@spirit@2@@spirit@boost@@QAE@Vget_definition_static_data_tag@impl@34@@Z@SAXXZ) already defined in scramble.obj ",Bugs,closed,Boost 1.36.0,spirit,Boost 1.35.0,Regression,fixed,,