Got it. Thanks.

On Mon, Jan 26, 2015 at 7:24 PM, Henrique Mendonça <[email protected]> wrote:
> Sorry for not being clear.
> As Jens said, it should be all good even on C++, if you use the reference
> keyword "&" like in:
> https://github.com/apache/thrift/blob/master/test/Recursive.thrift#L26
>
> - Henrique
>
> On 27 January 2015 at 13:58, Stuart Reynolds <[email protected]> wrote:
>
>> Hi Henrique,
>>
>> Thanks,
>>
>> Just to be super-clear, in 0.9.2 and above, its OK in thrift to have:
>> (1) structs that have fields of its own type (fine for most languages,
>> but you'll be sorry if you C++)
>> (2) structs that have fields that are containers of its own type (i.e.
>> is allowed in all target languages)
>>
>> ?
>>
>> I'm working on a scala plugin extensions in the swift2thift project
>> and want to nail down what *should* be allowed.
>>
>> Thanks,
>> - Stu
>>
>>
>>
>> On Mon, Jan 26, 2015 at 2:49 PM, Henrique Mendonça <[email protected]>
>> wrote:
>> > Hi Stuart,
>> >
>> > That should work, are you having any problems? Please have a look on:
>> > https://issues.apache.org/jira/browse/THRIFT-2421
>> > and:
>> > https://issues.apache.org/jira/browse/THRIFT-2471
>> >
>> > both already on 0.9.2
>> >
>> > Cheers,
>> > Henrique
>> >
>> >
>> > On 27 January 2015 at 02:05, Stuart Reynolds <[email protected]>
>> wrote:
>> >
>> >> Looking at the archives:
>> >>
>> >>
>> http://mail-archives.apache.org/mod_mbox/thrift-user/201011.mbox/%[email protected]%3E
>> >>
>> >> I understand that the following causes problems for C++:
>> >>
>> >> struct A {
>> >>   1: A a;
>> >> }
>> >>
>> >> because sizeof(A)==infinity.
>> >>
>> >>
>> >> 1-- the above .thrift compiles for in thrift 0.9.2. Are there guards
>> >> against it in later versions of thrift? If so, can there any
>> >> configuration possible surround this? (for example, ignoring the error
>> >> because C++ it not a target, or changing the C++ output to use aptr
>> >> for field members).
>> >>
>> >> 2 -- Are self referencing collections generally allowed? (Can't test
>> >> locally -- for now stuck with 0.9.2) e.g. :
>> >>
>> >> struct A {
>> >>   1: list<A> children;
>> >> }
>> >>
>> >>
>> >> Thanks,
>> >> - Stuart
>> >>
>>

Reply via email to