Kenton,

How do I make the following usage compile correctly?

<code>
$ cat test.proto

message Base {
    optional uint32 a = 1;
    optional uint32 b = 2;

    extensions 100 to 200;
}

message Ext {
    optional uint32 x = 1;
    optional uint32 y = 2;
}

extend Base {
    optional Ext ext = 100;
}

$ cat test.cc
#include "test.pb.h"

template <typename extid>
class Test {
public:
    Test() {
      assert(t.HasExtension(extid) == false);
    }
private:
    Base t;
};

Test<ext> mt;
</code>

Adagio

On Mon, May 3, 2010 at 10:59 PM, Kenton Varda <ken...@google.com> wrote:

> The only safe way to do this is to not depend on the type of the extension
> ID at all.  For example:
>
> template <typename T>
> void foo(Message* message, const T& extension_id) {
>   message->SetExtension(extension_id, 123);
> }
>
> On Sat, May 1, 2010 at 5:30 AM, Adagio <adagiograzi...@gmail.com> wrote:
>
>> Hi,
>>
>> Is it possible to use extension id as a parameter to C++ templates?
>>
>> If yes, should it be declared as a pointer/reference to a object
>> (seeing that the extension identifier is actually a global object)?
>> (an example would help very much!)
>>
>> Finally is it future-safe considering ExtensionIdentifier is in the
>> google::protobuf::internal namespace?
>>
>> Adagio
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Protocol Buffers" group.
>> To post to this group, send email to proto...@googlegroups.com.
>> To unsubscribe from this group, send email to
>> protobuf+unsubscr...@googlegroups.com<protobuf%2bunsubscr...@googlegroups.com>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/protobuf?hl=en.
>>
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to proto...@googlegroups.com.
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.

Reply via email to