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