-
Notifications
You must be signed in to change notification settings - Fork 152
Open
Description
Expected Behavior
Compilation finishes successful
Actual Behavior
Build is failing with following errors:
In file included from named_parameters.cpp:11:0:
/home/default/work/di/extension/include/boost/di/extension/injections/named_parameters.hpp: In instantiation of ‘struct boost::di::v1_1_0::extension::parse<example::boost_di_inject__, int, 2>’:
/home/default/work/di/extension/include/boost/di/extension/injections/named_parameters.hpp:97:69: required from ‘struct boost::di::v1_1_0::extension::args_impl<example::boost_di_inject__, boost::di::v1_1_0::aux::index_sequence<0, 1, 2>, int, std::unique_ptr<interface, std::default_delete<interface> >, int>’
/home/default/work/di/extension/include/boost/di/extension/injections/named_parameters.hpp:105:97: required from ‘struct boost::di::v1_1_0::extension::args__<true, example::boost_di_inject__, int, std::unique_ptr<interface, std::default_delete<interface> >, int>’
/home/default/work/di/extension/include/boost/di/extension/injections/named_parameters.hpp:115:69: required from ‘struct boost::di::v1_1_0::extension::args<example::boost_di_inject__ (*)(int, std::unique_ptr<interface>, int)>’
/home/default/work/di/extension/include/boost/di/extension/injections/named_parameters.hpp:124:38: required by substitution of ‘template<class T> using args_t = typename boost::di::v1_1_0::extension::args::type [with T = example::boost_di_inject__ (*)(int, std::unique_ptr<interface>, int)]’
named_parameters.cpp:29:3: required from here
/home/default/work/di/extension/include/boost/di/extension/injections/named_parameters.hpp:89:120: error: overflow in constant expression [-fpermissive]
named<aux::integral_constant<long, const_hash(&T::str[name.begin], name.end)>, TArg>>;
^
/home/default/work/di/extension/include/boost/di/extension/injections/named_parameters.hpp:89:120: note: in template argument for type ‘long int’
/home/default/work/di/extension/include/boost/di/extension/injections/named_parameters.hpp: In instantiation of ‘constexpr auto boost::di::v1_1_0::extension::operator""_s() [with T = char; T ...Chars = {'m', 'y', '_', 'v', 'a', 'l', 'u', 'e'}]’:
named_parameters.cpp:44:27: required from here
/home/default/work/di/extension/include/boost/di/extension/injections/named_parameters.hpp:52:92: error: overflow in constant expression [-fpermissive]
return aux::integral_constant<long, const_hash(chars<Chars...>{}, sizeof...(Chars) + 1)>{};
^
/home/default/work/di/extension/include/boost/di/extension/injections/named_parameters.hpp:52:92: note: in template argument for type ‘long int’
named_parameters.cpp: In function ‘int main()’:
named_parameters.cpp:44:39: error: invalid use of void expression
, di::bind<int>.named("my_value"_s).to(87)
^
named_parameters.cpp:48:26: error: expected primary-expression before ‘>’ token
injector.create<example>();
^
named_parameters.cpp:48:28: error: expected primary-expression before ‘)’ token
injector.create<example>();
Steps to Reproduce the Problem
Compile single file extension/test/injections/named_parameters.cpp
- 64bit (OK)
g++ -m64 named_parameters.cpp -I $PWD/../../include -I $PWD/../../../include -std=c++14 - 32bit (FAILS)
g++ -m32 named_parameters.cpp -I $PWD/../../include -I $PWD/../../../include -std=c++14
Specifications
- Version: 1.1.0
- Platform: Ubuntu 16.04.6 LTS 64bit
- g++ version 5.5.0
Metadata
Metadata
Assignees
Labels
No labels