Boost logo

Boost :

From: Paul A Bristow (pbristow_at_[hidden])
Date: 2008-02-07 05:21:18


I've looked a tiny amount further (but don't have time to investigate further).

I'm sure this will prove useful.

Paul

If MS Extensions are Disabled (my default setting):

It would seem that

BOOST_REGEX_CALL?? is not defined for __thiscall - only for __decl and __fastcall

Compiling... in debug mode
demo_grep.cpp
Linking...
demo_grep.obj : error LNK2019: unresolved external symbol "public: void __thiscall boost::re_detail::raw_storage::resize(unsigned
int)" (?resize_at_raw_storage_at_re_detail_at_boost@@QAEXI_at_Z) referenced in function "public: void * __thiscall
boost::re_detail::raw_storage::extend(unsigned int)" (?extend_at_raw_storage_at_re_detail_at_boost@@QAEPAXI_at_Z)
demo_grep.obj : error LNK2019: unresolved external symbol "public: void * __thiscall boost::re_detail::raw_storage::insert(unsigned
int,unsigned int)" (?insert_at_raw_storage_at_re_detail_at_boost@@QAEPAXII_at_Z) referenced in function "public: struct
boost::re_detail::re_syntax_base * __thiscall boost::re_detail::basic_regex_creator<char,struct boost::regex_traits<char,class
boost::cpp_regex_traits<char> > >::insert_state(int,enum boost::re_detail::syntax_element_type,unsigned int)"
(?insert_state@?$basic_regex_creator_at_DU?$regex_traits_at_DV?$cpp_regex_traits_at_D@boost@@@boost@@@re_detail_at_boost@@QAEPAUre_syntax_base_at_2
3_at_HW4syntax_element_type_at_23@I_at_Z)
J:\Cpp\Misc\Debug\grep.exe : fatal error LNK1120: 2 unresolved externals

If MS Extensions are enabled, it compiles but fails an assert

line 271 in xstring - "string iterators incompatible"

In release mode the program simply bombs :-(
 

>-----Original Message-----
>From: boost-bounces_at_[hidden]
>[mailto:boost-bounces_at_[hidden]] On Behalf Of Emre Turkay
>Sent: 07 February 2008 08:31
>To: boost_at_[hidden]
>Subject: Re: [boost] A grep like boost::iostreams filter.
>
>Hi Paul, I have found a Visual Studio 2005 installed windows
>PC and tried to
>compile. The first one was apparently failing because of the problem I
>mentioned before. However, the last one compiles and runs fine for both
>release and debug targets.
>
>I used Boost Consulting's BoostPro 1.34.1 installer. My
>main.cpp file is
>below, you need to change the full_path_to_the_main.cpp.
>
>HTH,
>
>emre
>
>
>int main()
>
>{
>
>boost::iostreams::grep_filter filter("main");
>
>boost::iostreams::filtering_istream is;
>
>is.unsetf(std::ios::skipws);
>
>is.push(filter);
>
>is.push(boost::iostreams::file_source("full_path_to_the_main.cpp"));
>
>std::copy(std::istream_iterator<char>(is),
>
>std::istream_iterator<char>(),
>
>std::ostream_iterator<char>(std::cout));
>
>}
>
>On Feb 6, 2008 11:26 AM, Paul A Bristow
><pbristow_at_[hidden]> wrote:
>
>>
>>
>> >-----Original Message-----
>> >From: boost-bounces_at_[hidden]
>> >[mailto:boost-bounces_at_[hidden]] On Behalf Of Emre Turkay
>> >Sent: 06 February 2008 07:23
>> >To: boost_at_[hidden]
>> >Subject: Re: [boost] A grep like boost::iostreams filter.
>> >
>> >Hi Paul,
>> >
>> >I don't have a Visual C compiler around but the link error
>you got is
>> >probably not related with the grep filter.
>> >
>> >For the run time bug, one of my friends had the same
>> >experience and we have
>> >found out that visual c cannot handle iterators of the empty
>> >strings. So I
>> >made a workaround for it, I don't know if it works, since I
>> >couldn't try it with VC yet.
>> >
>> >Can you download, give it a try and let me know if it works for you?
>> >
>> >http://emreturkay.googlepages.com/grep.hpp
>>
>> Sadly, this gives me the same result in both debug (link
>failure - missing
>> include?) and release (crashes).
>>
>> :-(
>>
>> Paul
>>
>> Linking...
>> demo_grep.obj : error LNK2019: unresolved external symbol
>"public: void
>> __thiscall boost::re_detail::raw_storage::resize(unsigned
>> int)" (?resize_at_raw_storage_at_re_detail_at_boost@@QAEXI_at_Z) referenced in
>> function "public: void * __thiscall
>> boost::re_detail::raw_storage::extend(unsigned int)" (?extend@
>> raw_storage_at_re_detail_at_boost@@QAEPAXI_at_Z)
>> demo_grep.obj : error LNK2019: unresolved external symbol
>"public: void *
>> __thiscall boost::re_detail::raw_storage::insert(unsigned
>> int,unsigned int)" (?insert_at_raw_storage_at_re_detail_at_boost@@QAEPAXII_at_Z)
>> referenced in function "public: struct
>> boost::re_detail::re_syntax_base * __thiscall
>> boost::re_detail::basic_regex_creator<char,struct
>> boost::regex_traits<char,class
>> boost::cpp_regex_traits<char> > >::insert_state(int,enum
>> boost::re_detail::syntax_element_type,unsigned int)"
>> (?insert_state@?$basic_regex_creator_at_DU?$regex_traits_at_DV
>> ?$cpp_regex_traits_at_D@boost@@@boost@@@re_detail_at_boost@@
>> QAEPAUre_syntax_base_at_2
>> 3_at_HW4syntax_element_type_at_23@I_at_Z)
>> J:\Cpp\Misc\Debug\grep.exe : fatal error LNK1120: 2
>unresolved externals
>>
>> _______________________________________________
>> Unsubscribe & other changes:
>> http://lists.boost.org/mailman/listinfo.cgi/boost
>>
>_______________________________________________
>Unsubscribe & other changes:
>http://lists.boost.org/mailman/listinfo.cgi/boost
>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk