You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Kim van der Riet (JIRA)" <ji...@apache.org> on 2018/03/28 15:52:00 UTC

[jira] [Comment Edited] (PROTON-1815) [C++ binding] Complex types: List containing array of std::nullptr_t fails compilation

    [ https://issues.apache.org/jira/browse/PROTON-1815?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16417586#comment-16417586 ] 

Kim van der Riet edited comment on PROTON-1815 at 3/28/18 3:51 PM:
-------------------------------------------------------------------

The full compilation error is:
{noformat}
In file included from ../install/include/proton/types.hpp:47:0,
from amqp_complex_types_test.data.cpp:34:
../install/include/proton/./codec/vector.hpp: In instantiation of ‘proton::codec::encoder& proton::codec::operator<<(proton::codec::encoder&, const std::vector<_Tp, _Alloc>&) [with T = std::nullptr_t; A = std::allocator<std::nullptr_t>]’:
../install/include/proton/./value.hpp:84:11: required from ‘typename proton::value::assignable<T, proton::value&>::type proton::value::operator=(const T&) [with T = std::vector<std::nullptr_t>; typename proton::value::assignable<T, proton::value&>::type = proton::value&]’
../install/include/proton/./value.hpp:79:85: required from ‘proton::value::value(const T&, typename proton::value::assignable<T>::type*) [with T = std::vector<std::nullptr_t>; typename proton::value::assignable<T>::type = void]’
amqp_complex_types_test.data.cpp:121:68: required from here
../install/include/proton/./codec/vector.hpp:39:31: error: incomplete type ‘proton::internal::type_id_of<std::nullptr_t>’ used in nested name specifier
        return e << encoder::array(x, internal::type_id_of<T>::value);
                    ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

{noformat}
and where the line referenced in {{amqp_complex_types_test.data.cpp:121:68}} is the third line in the code snippet given above.


was (Author: kpvdr):
The full compilation error is:
{noformat}
In file included from ../install/include/proton/types.hpp:47:0,
from amqp_complex_types_test.data.cpp:34:
../install/include/proton/./codec/vector.hpp: In instantiation of ‘proton::codec::encoder& proton::codec::operator<<(proton::codec::encoder&, const std::vector<_Tp, _Alloc>&) [with T = std::nullptr_t; A = std::allocator<std::nullptr_t>]’:
../install/include/proton/./value.hpp:84:11: required from ‘typename proton::value::assignable<T, proton::value&>::type proton::value::operator=(const T&) [with T = std::vector<std::nullptr_t>; typename proton::value::assignable<T, proton::value&>::type = proton::value&]’
../install/include/proton/./value.hpp:79:85: required from ‘proton::value::value(const T&, typename proton::value::assignable<T>::type*) [with T = std::vector<std::nullptr_t>; typename proton::value::assignable<T>::type = void]’
amqp_complex_types_test.data.cpp:121:68: required from here
../install/include/proton/./codec/vector.hpp:39:31: error: incomplete type ‘proton::internal::type_id_of<std::nullptr_t>’ used in nested name specifier
        return e << encoder::array(x, internal::type_id_of<T>::value);
                                   ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

{noformat}
and where the line referenced in {{amqp_complex_types_test.data.cpp:121:68}} is the third line in the code snippet given above.

> [C++ binding]  Complex types: List containing array of std::nullptr_t fails compilation
> ---------------------------------------------------------------------------------------
>
>                 Key: PROTON-1815
>                 URL: https://issues.apache.org/jira/browse/PROTON-1815
>             Project: Qpid Proton
>          Issue Type: Task
>          Components: cpp-binding
>            Reporter: Kim van der Riet
>            Priority: Major
>
> If an array of AMQP nulls is contained in a list, the compiler fails with:
> {noformat}
> include/proton/./codec/vector.hpp:39:31: error: incomplete type ‘proton::internal::type_id_of<std::nullptr_t>’ used in nested name specifier
> {noformat}
> Code snippet that produces this error:
> {noformat}
> std::vector<std::nullptr_t> _arr_27 = {nullptr, nullptr, };
> std::vector<int8_t> _arr_28 = {int8_t(1), int8_t(2), };
> std::vector<proton::value> _lst_7 = {_arr_27, _arr_28, };
> {noformat}
> which fails on the third line.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org