Yeah this actually makes sense. I just want to make sure I did not miss 
anything. Thanks.

On Friday, May 17, 2019 at 1:40:59 PM UTC-7, Adam Cozzette wrote:
>
> No, there is not really any good alternative but to write two separate 
> message definitions. The .proto file format is language-agnostic so it 
> can't use any C++-specific features.
>
> On Thu, May 16, 2019 at 9:37 PM Jui-Hsien Wang <[email protected] 
> <javascript:>> wrote:
>
>> I am revoking this old question but I would like to know if protobuf can 
>> handle class templates?
>>
>> Suppose I have a simple class
>> template<typename T>
>> struct Data {
>>     T data;
>> };
>>
>> and know that T can only take on float and double. Is there a way to 
>> avoid writing two proto files?
>>
>>
>>
>>
>> On Wednesday, January 21, 2015 at 9:28:53 AM UTC-8, Stephen Tu wrote:
>>>
>>> This is not really a protobuf question, moreso a C++ question. But 
>>> anyways, the typical way to do this is:
>>>
>>> template <typename T> struct MatrixTraits { };
>>> template <> struct MatrixTraits<double> { typedef DoubleMatrix type; };
>>> template <> struct MatrixTraits<float>    { typedef FloatMatrix type; };
>>>
>>> template <typename DType> class Matrix { 
>>>     typename MatrixTraits<DType>::type mat_data_;
>>> };
>>>
>>> On Mon, Jan 19, 2015 at 5:41 PM, Ji Wan <[email protected]> wrote:
>>>
>>>> Suppose I have two message types `DoubleMatrix` and `FloatMatrix`, and a 
>>>> template class `Matrix`:
>>>>
>>>>
>>>> message DoubleMatrix {
>>>>   required uint32 rows = 1;
>>>>   required uint32 cols = 2;
>>>>   repeated double data = 3 [packed=true];
>>>> }
>>>>
>>>>
>>>> message FloatMatrix {
>>>>   required uint32 rows = 1;
>>>>   required uint32 cols = 2;
>>>>   repeated float data = 3 [packed=true];
>>>> }
>>>>
>>>>
>>>> template<typename DType>
>>>> class Matrix {
>>>>     MSTType mat_data_;
>>>> };
>>>>
>>>>
>>>>
>>>> Is it possible to make `MSTType` as `FloatMatrix` if `DType` is `float`, 
>>>> as `DoubleMatrix` if `DType` is `double`?
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Protocol Buffers" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at http://groups.google.com/group/protobuf.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Protocol Buffers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/protobuf.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/protobuf/056beefe-b2e1-4c79-8c44-b7027191eded%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/protobuf/056beefe-b2e1-4c79-8c44-b7027191eded%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/protobuf.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/protobuf/c95127c2-1a3b-445b-99e6-0f8d5021e741%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to