Searching for Review Manager for reflection library without macro

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Searching for Review Manager for reflection library without macro

Boost - Dev mailing list
Hello,

PFR is a C++14 library that provides tuple-like methods for aggregate
initializables. Library has a set of predefined operators and useful
functions for everyday use. Works with user-defined types without any
macro or boilerplate code.

Library: https://github.com/apolukhin/magic_get
Docs: http://apolukhin.github.io/magic_get/
Boost Library Incubator:
http://blincubator.com/bi_library/pfr-pod-flat-reflection/?gform_post_id=1606



Anyone wishing to become a Review Manager for the library?



Boost libraries that may benefit from PFR:
* Convert - for out-of-the-box conversions of user types
* Hana - for using user types instead of tuples
* Intrusive - for reusing unused bits in user provided types
* Serialization - for out-of-the-box serialization of user types
* Spirit - for putting rule results into user provided types without
Phoenix or Fusion macro
* Test - for outputting content of user provided types
* TypeTraits - for traits like has_unique_object_representations in C++14

--
Best regards,
Antony Polukhin

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: Searching for Review Manager for reflection library without macro

Boost - Dev mailing list


10.08.2017 08:20, Antony Polukhin via Boost пишет:

> Hello,
>
> PFR is a C++14 library that provides tuple-like methods for aggregate
> initializables. Library has a set of predefined operators and useful
> functions for everyday use. Works with user-defined types without any
> macro or boilerplate code.
>
> Library: https://github.com/apolukhin/magic_get
> Docs: http://apolukhin.github.io/magic_get/
> Boost Library Incubator:
> http://blincubator.com/bi_library/pfr-pod-flat-reflection/?gform_post_id=1606
>
>
>
> Anyone wishing to become a Review Manager for the library?
>
>
>
> Boost libraries that may benefit from PFR:
> * Convert - for out-of-the-box conversions of user types
> * Hana - for using user types instead of tuples
> * Intrusive - for reusing unused bits in user provided types
> * Serialization - for out-of-the-box serialization of user types
> * Spirit - for putting rule results into user provided types without
> Phoenix or Fusion macro
> * Test - for outputting content of user provided types
> * TypeTraits - for traits like has_unique_object_representations in C++14
>
Hello,

Can i become review manager for the PFR library? Are there any people
who are interested in reviewing PFR library?

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: Searching for Review Manager for reflection library without macro

Boost - Dev mailing list

Am 15.08.2017 um 02:57 schrieb Alexander Zaitsev via Boost:
>
> Are there any people who are interested in reviewing PFR library?

I would like to participate.

Best regards,
Mike...


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: Searching for Review Manager for reflection library without macro

Boost - Dev mailing list

________________________________________
From: Boost [[hidden email]] on behalf of Mike Gresens via Boost [[hidden email]]
Sent: 15 August 2017 07:15
To: [hidden email]; Mike Gresens
Cc: Mike Gresens
Subject: Re: [boost] Searching for Review Manager for reflection library without macro

>>Am 15.08.2017 um 02:57 schrieb Alexander Zaitsev via Boost:
>>
> >Are there any people who are interested in reviewing PFR library?

> I would like to participate.

> Best regards,
> Mike...

I would like to participate too.  I have looked on the list of reviews to find dates for this, which I guess are not fixed yet.

John Fletcher

_______________________________________________
Unsubscribe & other changes: https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.boost.org%2Fmailman%2Flistinfo.cgi%2Fboost&data=02%7C01%7CJ.P.Fletcher%40aston.ac.uk%7Cd4f45b108ab14ab8b14608d4e3a50693%7Ca085950c4c2544d5945ab852fa44a221%7C0%7C0%7C636383745298610448&sdata=s30V6JhUYw5dotYq4vg5aOU7U1i53xgtrA3QvQx98V4%3D&reserved=0

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: Searching for Review Manager for reflection library without macro

Boost - Dev mailing list
In reply to this post by Boost - Dev mailing list
On Thu, Aug 10, 2017 at 12:20 AM, Antony Polukhin via Boost <
[hidden email]> wrote:

>
> Hello,
>
> PFR is a C++14 library that provides tuple-like methods for aggregate
> initializables. Library has a set of predefined operators and useful
> functions for everyday use. Works with user-defined types without any
> macro or boilerplate code.
>
> Library: https://github.com/apolukhin/magic_get
> Docs: http://apolukhin.github.io/magic_get/
> Boost Library Incubator:
>
http://blincubator.com/bi_library/pfr-pod-flat-reflection/?gform_post_id=1606

>
>
>
> Anyone wishing to become a Review Manager for the library?
>
>
>
> Boost libraries that may benefit from PFR:
> * Convert - for out-of-the-box conversions of user types
> * Hana - for using user types instead of tuples
> * Intrusive - for reusing unused bits in user provided types
> * Serialization - for out-of-the-box serialization of user types
> * Spirit - for putting rule results into user provided types without
> Phoenix or Fusion macro
> * Test - for outputting content of user provided types
> * TypeTraits - for traits like has_unique_object_representations in C++14
>
> --
> Best regards,
> Antony Polukhin

I'm a bit late to respond here, but I just want to say that I hope this
library finds a review manager. Although I have not used it personally, I
have recommended it to several people for real world problems, and I have
also studied the implementation. I believe the library is unique, clever,
and useful (especially pre C++17).

There is a CppCon video about the implementation here, for those who
haven't seen it: https://youtu.be/abdeAew3gmQ

Barrett

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: Searching for Review Manager for reflection library without macro

Boost - Dev mailing list
> On Thu, Aug 10, 2017 at 12:20 AM, Antony Polukhin via Boost <
> [hidden email]> wrote:
> >
> > Hello,
> >
> > PFR is a C++14 library that provides tuple-like methods for aggregate
> > initializables. Library has a set of predefined operators and useful
> > functions for everyday use. Works with user-defined types without any
> > macro or boilerplate code.
> >
> > Library: https://github.com/apolukhin/magic_get
> > Docs: http://apolukhin.github.io/magic_get/


Does this library need the latest boost develop?

When using the (develop-)code with 1.64, the "motivating" example gives the
following errors on VS2017 15.3.3 (/std::latest):

1>------ Rebuild All started: Project: pfr, Configuration: Release x64
------
1>pfr.cpp
1>z:\vc\x64\include\boost/pfr/detail/core14.hpp(54): warning C4554: '<<':
check operator precedence for possible error; use parentheses to clarify
precedence
1>z:\vc\x64\include\boost/pfr/detail/core14.hpp(58): warning C4554: '<<':
check operator precedence for possible error; use parentheses to clarify
precedence
1>z:\vc\x64\include\boost/pfr/detail/core14.hpp(62): warning C4554: '<<':
check operator precedence for possible error; use parentheses to clarify
precedence
1>z:\vc\x64\include\boost/pfr/detail/core14.hpp(67): warning C4554: '<<':
check operator precedence for possible error; use parentheses to clarify
precedence
1>z:\vc\x64\include\boost/pfr/detail/core14.hpp(72): warning C4554: '<<':
check operator precedence for possible error; use parentheses to clarify
precedence
1>z:\vc\x64\include\boost/pfr/detail/core14.hpp(77): warning C4554: '<<':
check operator precedence for possible error; use parentheses to clarify
precedence
1>z:\vc\x64\include\boost/pfr/flat/tuple_size.hpp(26): error C2039:
'size_v': is not a member of '`global namespace''
1>z:\vc\x64\include\boost/pfr/flat/tuple_size.hpp(26): error C2146: syntax
error: missing '>' before identifier 'size_v'
1>z:\vc\x64\include\boost/pfr/flat/tuple_size.hpp(26): error C2993:
'unknown-type': illegal type for non-type template parameter 'Index'
1>z:\vc\x64\include\boost/pfr/detail/detectors.hpp(33): error C2679: binary
'<<': no operator found which takes a right-hand operand of type 'const
my_struct' (or there is no acceptable conversion)
1>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\ostream(488): note:
could be 'std::basic_ostream<char,std::char_traits<char>>
&std::basic_ostream<char,std::char_traits<char>>::operator
<<(std::basic_streambuf<char,std::char_traits<char>> *)'
1>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\ostream(468): note:
or       'std::basic_ostream<char,std::char_traits<char>>
&std::basic_ostream<char,std::char_traits<char>>::operator <<(const void *)'
1>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\ostream(448): note:
or       'std::basic_ostream<char,std::char_traits<char>>
&std::basic_ostream<char,std::char_traits<char>>::operator <<(long double)'

<snip>

1>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\ostream(209): note:
or       'std::basic_ostream<char,std::char_traits<char>>
&std::basic_ostream<char,std::char_traits<char>>::operator <<(bool)'
1>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\ostream(203): note:
or       'std::basic_ostream<char,std::char_traits<char>>
&std::basic_ostream<char,std::char_traits<char>>::operator <<(std::ios_base
&(__cdecl *)(std::ios_base &))'
1>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\ostream(197): note:
or       'std::basic_ostream<char,std::char_traits<char>>
&std::basic_ostream<char,std::char_traits<char>>::operator
<<(std::basic_ios<char,std::char_traits<char>> &(__cdecl
*)(std::basic_ios<char,std::char_traits<char>> &))'
1>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\ostream(192): note:
or       'std::basic_ostream<char,std::char_traits<char>>
&std::basic_ostream<char,std::char_traits<char>>::operator
<<(std::basic_ostream<char,std::char_traits<char>> &(__cdecl
*)(std::basic_ostream<char,std::char_traits<char>> &))'
1>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\ostream(684): note:
or       'std::basic_ostream<char,std::char_traits<char>> &std::operator
<<<char,std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>>
&,const char *)'

<snip>

1>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\ostream(973): note:
or       'std::basic_ostream<char,std::char_traits<char>> &std::operator
<<<char,std::char_traits<char>,my_struct>(std::basic_ostream<char,std::char_traits<char>>
&&,const _Ty &)'
1>        with
1>        [
1>            _Ty=my_struct
1>        ]
1>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\ostream(1011):
note: or       'std::basic_ostream<char,std::char_traits<char>>
&std::operator
<<<char,std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>>
&,const std::error_code &)'
1>z:\vc\x64\include\boost/pfr/detail/detectors.hpp(33): note: while trying
to match the argument list
'(std::basic_ostream<char,std::char_traits<char>>, const my_struct)'
1>z:\vc\x64\include\boost/pfr/detail/detectors.hpp(21): note: see reference
to alias template instantiation
'ostreamable_detector<std::basic_ostream<char,std::char_traits<char>>&,Tright>'
being compiled
1>        with
1>        [
1>            Tright=const my_struct &
1>        ]
1>pfr.cpp(15): note: see reference to class template instantiation
'boost::pfr::detail::not_appliable<boost::pfr::detail::ostreamable_detector,std::basic_ostream<char,std::char_traits<char>>
&,const my_struct &>' being compiled
1>z:\vc\x64\include\boost/pfr/precise/ops.hpp(128): note: see reference to
function template instantiation
'std::enable_if<boost::pfr::detail::not_appliable<boost::pfr::detail::ostreamable_detector,Stream&,const
Type&>::value,Stream&>::type boost::pfr::ops::operator
<<(std::basic_ostream<_Elem,_Traits> &,const T &)' being compiled
1>        with
1>        [
1>            Stream=std::basic_ostream<_Elem,_Traits>,
1>            Type=T
1>        ]
1>z:\vc\x64\include\boost/pfr/detail/detectors.hpp(33): error C2088: '<<':
illegal for class
1>Done building project "pfr.vcxproj" -- FAILED.


With clang/LLVM-6 (-std=c++2a), the following errors are generated:


1>------ Rebuild All started: Project: pfr, Configuration: Release x64
------
1>In file included from pfr.cpp:3:
1>In file included from z:\vc\x64\include\boost/pfr.hpp:12:
1>In file included from z:\vc\x64\include\boost/pfr/precise.hpp:12:
1>In file included from z:\vc\x64\include\boost/pfr/precise/core.hpp:20:
1>z:\vc\x64\include\boost/pfr/detail/core17.hpp(21): error : cannot
decompose this type; 'std::tuple_size<const
boost::pfr::detail::do_not_define_std_tuple_size_for_me>::value' is not a
valid integral constant expression
1>z:\vc\x64\include\boost/pfr/detail/core17.hpp(39):  note: in
instantiation of function template specialization
'boost::pfr::detail::do_structured_bindings_work<boost::pfr::detail::do_not_define_std_tuple_size_for_me>'
requested here
1>z:\vc\x64\include\boost/pfr/detail/core17.hpp(39): error : static_assert
expression is not an integral constant expression
1>In file included from pfr.cpp:3:
1>In file included from z:\vc\x64\include\boost/pfr.hpp:12:
1>In file included from z:\vc\x64\include\boost/pfr/precise.hpp:12:
1>In file included from z:\vc\x64\include\boost/pfr/precise/core.hpp:20:
1>In file included from z:\vc\x64\include\boost/pfr/detail/core17.hpp:10:
1>z:\vc\x64\include\boost/pfr/detail/core17_generated.hpp(51): error :
cannot decompose this type; 'std::tuple_size<const my_struct>::value' is
not a valid integral constant expression
1>z:\vc\x64\include\boost/pfr/detail/core17_generated.hpp(1032):  note: in
instantiation of function template specialization
'boost::pfr::detail::as_tuple_impl<const my_struct &>' requested here
1>z:\vc\x64\include\boost/pfr/precise/io.hpp(45):  note: in instantiation
of function template specialization
'boost::pfr::detail::as_tuple<my_struct>' requested here
1>z:\vc\x64\include\boost/pfr/precise/ops.hpp(129):  note: in instantiation
of function template specialization 'boost::pfr::write<char,
std::char_traits<char>, my_struct>' requested here
1>pfr.cpp(15):  note: in instantiation of function template specialization
'boost::pfr::ops::operator<<<char, std::char_traits<char>, my_struct>'
requested here
1>Done building project "pfr.vcxproj" -- FAILED.

 degski
--
"*Ihre sogenannte Religion wirkt bloß wie ein Opiat reizend, betäubend,
Schmerzen aus Schwäche stillend.*" - Novalis 1798

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: Searching for Review Manager for reflection library without macro

Boost - Dev mailing list
2017-09-05 8:31 GMT+03:00 degski via Boost <[hidden email]>:

>> On Thu, Aug 10, 2017 at 12:20 AM, Antony Polukhin via Boost <
>> [hidden email]> wrote:
>> >
>> > Hello,
>> >
>> > PFR is a C++14 library that provides tuple-like methods for aggregate
>> > initializables. Library has a set of predefined operators and useful
>> > functions for everyday use. Works with user-defined types without any
>> > macro or boilerplate code.
>> >
>> > Library: https://github.com/apolukhin/magic_get
>> > Docs: http://apolukhin.github.io/magic_get/
>
>
> Does this library need the latest boost develop?

No, it does not depend on Boost. Only some tests use Boost headers.


> When using the (develop-)code with 1.64, the "motivating" example gives the
> following errors on VS2017 15.3.3 (/std::latest):
>
> <snip>

I have not tested it on latest MSVC yet. I've tested it on some
non-old MSVCs and it failed to build because of the constexpr support
in MSVC.

I'll try too build it with latest MSVC in a few weeks and I'll try to
bypass all the possible compiler related issues.

--
Best regards,
Antony Polukhin

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: Searching for Review Manager for reflection library without macro

Boost - Dev mailing list
In reply to this post by Boost - Dev mailing list
2017-09-05 7:40 GMT+03:00 Barrett Adair via Boost <[hidden email]>:

> On Thu, Aug 10, 2017 at 12:20 AM, Antony Polukhin via Boost <
> [hidden email]> wrote:
>>
>> Hello,
>>
>> PFR is a C++14 library that provides tuple-like methods for aggregate
>> initializables. Library has a set of predefined operators and useful
>> functions for everyday use. Works with user-defined types without any
>> macro or boilerplate code.
>>
>> Library: https://github.com/apolukhin/magic_get
>> Docs: http://apolukhin.github.io/magic_get/
>> Boost Library Incubator:
>>
> http://blincubator.com/bi_library/pfr-pod-flat-reflection/?gform_post_id=1606
>>
>>
>>
>> Anyone wishing to become a Review Manager for the library?
<...>
>
> I'm a bit late to respond here, but I just want to say that I hope this
> library finds a review manager. Although I have not used it personally, I
> have recommended it to several people for real world problems, and I have
> also studied the implementation. I believe the library is unique, clever,
> and useful (especially pre C++17).

I'd like to highlight that the Review Manager position is still vacant.

Library awaits it's hero!

--
Best regards,
Antony Polukhin

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: Searching for Review Manager for reflection library without macro

Boost - Dev mailing list
In reply to this post by Boost - Dev mailing list
On 6 September 2017 at 22:07, Antony Polukhin via Boost <
[hidden email]> wrote:

> ... and it failed to build because of the constexpr support in MSVC.
>

As it also fails to build with Clang-LLVM-6 (with STL of VS2017 15.3.3),
there must be another issue now (STL related?).


> I'll try too build it with latest MSVC in a few weeks and I'll try to
> bypass all the possible compiler related issues.
>

Great, it lookes interesting and usefull.

degski
--
"*Ihre sogenannte Religion wirkt bloß wie ein Opiat reizend, betäubend,
Schmerzen aus Schwäche stillend.*" - Novalis 1798

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: Searching for Review Manager for reflection library without macro

Boost - Dev mailing list
In reply to this post by Boost - Dev mailing list
On Sep 6, 2017 21:12, "Antony Polukhin via Boost" <[hidden email]>
wrote:


I'd like to highlight that the Review Manager position is still vacant.

Library awaits it's hero!


Hi,
I volunteer to be the review manager of the Precise and Flat Reflection
library.

Benedek

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost