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.
