Boost logo

Boost Users :

Subject: Re: [Boost-users] multi_index::composite_key with char[]
From: leyiliu (595657419_at_[hidden])
Date: 2015-09-11 01:28:11


Joaquin M LópezMuñoz wrote
> leyiliu <595657419
> <at>
> qq.com> writes:
>
>>
>> CoreStruct.h &lt;http://boost.2283326.n4.nabble.com/file/n4679888/
> &gt; CoreStruct.h>
>> TypeDef.h
>> &lt;http://boost.2283326.n4.nabble.com/file/n4679888/TypeDef.h&gt;
>>
>> this is my code file
>>
>> t_ac_client_basic_set testSet;
>> pk_t_ac_client_basic_Index test = testSet.get
> <pk_t_ac_client_basic>
> ;
>> test.find(std::make_tuple("KS", "1"));
>>
>> How can I modify to right
>
> Hi leyiliu,
>
> I'd suggest you don't remove the conversation context when replying to
> the list, so that the conversation can be more easily followed by
> potential reades. Useful info on posting guidelines at
>
> http://www.boost.org/community/policy.html
>
> As for your question, I've reviewed the code you provide and seemingly
> you're taking my advice of providing ad-hoc hash and equality functors
> taking const char* rather than char[21], so in principle everything
> looks right. What exact problem/error are you getting?
>
> PS: the line
>
> pk_t_ac_client_basic_Index test = testSet.get
> <pk_t_ac_client_basic>
> should be
>
> pk_t_ac_client_basic_Index& test = testSet.get
> <pk_t_ac_client_basic>
> (note the &). Is this related to your problem?
>
> Joaquín M López Muñoz
> Telefónica
> _______________________________________________
> Boost-users mailing list

> Boost-users_at_.boost

> http://lists.boost.org/mailman/listinfo.cgi/boost-users

I follow your suggest,define the set like this:

        typedef boost::multi_index_container<
                t_ac_client_basic,
                boost::multi_index::indexed_by<

                boost::multi_index::ordered_non_unique<
                boost::multi_index::tag<pk_t_ac_client_basic>,
                boost::multi_index::composite_key<
                t_ac_client_basic,
                boost::multi_index::member<t_ac_client_basic, char[21],
&amp;t_ac_client_basic::LCcode >,
                boost::multi_index::member<t_ac_client_basic, char[21],
&amp;t_ac_client_basic::ClientID >
>,
                boost::multi_index::composite_key_compare<
                std::less<const char*>,
                std::less<const char*>
>
>
>
> t_ac_client_basic_set;

I get a error,when add this code
pk_t_ac_client_basic_Index& test = testSet.get<pk_t_ac_client_basic>;
:
error C3867:
“boost::multi_index::multi_index_container<ZYSystem::t_ac_client_basic,boost::multi_index::indexed_by&lt;boost::multi_index::ordered_non_unique&lt;boost::multi_index::tag&lt;ZYSystem::pk_t_ac_client_basic,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::multi_index::composite_key<ZYSystem::t_ac_client_basic,boost::multi_index::member&lt;ZYSystem::t_ac_client_basic,char
[21],pointer-to-member(0x0)>,boost::multi_index::member<ZYSystem::t_ac_client_basic,char
[21],pointer-to-member(0x15)>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>,boost::multi_index::composite_key_compare<std::less&lt;const
char *>,std::less<const char
*>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,std::allocator<Value>>::get”:
函数调用缺少参数列表;请使用“&boost::multi_index::multi_index_container<ZYSystem::t_ac_client_basic,boost::multi_index::indexed_by&lt;boost::multi_index::ordered_non_unique&lt;boost::multi_index::tag&lt;ZYSystem::pk_t_ac_client_basic,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::multi_index::composite_key<ZYSystem::t_ac_client_basic,boost::multi_index::member&lt;ZYSystem::t_ac_client_basic,char
[21],pointer-to-member(0x0)>,boost::multi_index::member<ZYSystem::t_ac_client_basic,char
[21],pointer-to-member(0x15)>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>,boost::multi_index::composite_key_compare<std::less&lt;const
char *>,std::less<const char
*>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,std::allocator<Value>>::get”创建指向成员的指针

when I use the hash index,like my code file,I get a error:
error C3867:
“boost::multi_index::multi_index_container<ZYSystem::t_ac_client_basic,boost::multi_index::indexed_by&lt;boost::multi_index::hashed_non_unique&lt;boost::multi_index::tag&lt;ZYSystem::pk_t_ac_client_basic,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::multi_index::composite_key<ZYSystem::t_ac_client_basic,boost::multi_index::member&lt;ZYSystem::t_ac_client_basic,char
[21],pointer-to-member(0x0)>,boost::multi_index::member<ZYSystem::t_ac_client_basic,char
[21],pointer-to-member(0x15)>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>,boost::multi_index::composite_key_hash<ZYSystem::CharHasher,ZYSystem::CharHasher,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>,boost::multi_index::composite_key_equal_to<ZYSystem::CharEqualTo,ZYSystem::CharEqualTo,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,std::allocator<Value>>::get”:
函数调用缺少参数列表;请使用“&boost::multi_index::multi_index_container<ZYSystem::t_ac_client_basic,boost::multi_index::indexed_by&lt;boost::multi_index::hashed_non_unique&lt;boost::multi_index::tag&lt;ZYSystem::pk_t_ac_client_basic,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,boost::multi_index::composite_key<ZYSystem::t_ac_client_basic,boost::multi_index::member&lt;ZYSystem::t_ac_client_basic,char
[21],pointer-to-member(0x0)>,boost::multi_index::member<ZYSystem::t_ac_client_basic,char
[21],pointer-to-member(0x15)>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>,boost::multi_index::composite_key_hash<ZYSystem::CharHasher,ZYSystem::CharHasher,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>,boost::multi_index::composite_key_equal_to<ZYSystem::CharEqualTo,ZYSystem::CharEqualTo,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>,std::allocator<Value>>::get”创建指向成员的指针

--
View this message in context: http://boost.2283326.n4.nabble.com/multi-index-composite-key-with-char-tp4679825p4679964.html
Sent from the Boost - Users mailing list archive at Nabble.com.

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net