Actions
Bug #3882
closedFib::const_iterator is not default-constructible
Start date:
Due date:
% Done:
100%
Estimated time:
2.00 h
Description
Even though we have the concept checks for default-construction, it fails on Ubuntu 14.04.5 with gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3). The same code compiles on Ubuntu 16.04.1 with stock gcc and on macOS 10.12 with stock clang.
The error appears when compiling the snippet within ndnSIM. I will try to create a simpler snippet later.
...
static PyObject* _wrap_PyNs3NdnNfdFib_Iter__tp_iternext(PyNs3NdnNfdFib_Iter *self)
{
...
ns3::ndn::nfd::Fib::const_iterator iter;
...
}
The error I'm getting is the following
[1377/2352] Compiling build/src/ndnSIM/bindings/ns3module.cc
In file included from /usr/include/boost/range/adaptor/transformed.hpp:16:0,
from /usr/include/boost/range/adaptor/map.hpp:14,
from ./ns3/ndnSIM/NFD/daemon/fw/face-table.hpp:31,
from ./ns3/ndnSIM/NFD/daemon/fw/forwarder.hpp:32,
from ./ns3/ndnSIM/helper/ndn-strategy-choice-helper.hpp:31,
from ./ns3/ndnSIM/helper/ndn-stack-helper.hpp:32,
from ./ns3/ndn-all.hpp:23,
from ./ns3/ndnSIM-module.h:10,
from src/ndnSIM/bindings/ns3module.h:78,
from src/ndnSIM/bindings/ns3module.cc:1:
/usr/include/boost/iterator/transform_iterator.hpp: In instantiation of ‘boost::transform_iterator<UnaryFunction, Iterator, Reference, Value>::transform_iterator() [with UnaryFunc = nfd::name_tree::GetTableEntry<nfd::fib::Entry>; Iterator = nfd::name_tree::Iterator; Reference = boost::use_default; Value = boost::use_default]’:
src/ndnSIM/bindings/ns3module.cc:1723:40: required from here
/usr/include/boost/iterator/transform_iterator.hpp:84:26: error: no matching function for call to ‘nfd::name_tree::GetTableEntry<nfd::fib::Entry>::GetTableEntry()’
transform_iterator() { }
^
/usr/include/boost/iterator/transform_iterator.hpp:84:26: note: candidates are:
In file included from ../src/ndnSIM/NFD/daemon/table/name-tree-hashtable.hpp:29:0,
from ../src/ndnSIM/NFD/daemon/table/name-tree-iterator.hpp:29,
from ../src/ndnSIM/NFD/daemon/table/name-tree.hpp:29,
from ../src/ndnSIM/NFD/daemon/table/fib.hpp:30,
from ./ns3/ndnSIM/NFD/daemon/fw/forwarder.hpp:34,
from ./ns3/ndnSIM/helper/ndn-strategy-choice-helper.hpp:31,
from ./ns3/ndnSIM/helper/ndn-stack-helper.hpp:32,
from ./ns3/ndn-all.hpp:23,
from ./ns3/ndnSIM-module.h:10,
from src/ndnSIM/bindings/ns3module.h:78,
from src/ndnSIM/bindings/ns3module.cc:1:
../src/ndnSIM/NFD/daemon/table/name-tree-entry.hpp:193:3: note: nfd::name_tree::GetTableEntry<ENTRY>::GetTableEntry(nfd::name_tree::GetTableEntry<ENTRY>::Getter) [with ENTRY = nfd::fib::Entry; nfd::name_tree::GetTableEntry<ENTRY>::Getter = nfd::fib::Entry* (nfd::name_tree::Entry::*)()const]
GetTableEntry(Getter getter)
^
../src/ndnSIM/NFD/daemon/table/name-tree-entry.hpp:193:3: note: candidate expects 1 argument, 0 provided
../src/ndnSIM/NFD/daemon/table/name-tree-entry.hpp:185:7: note: constexpr nfd::name_tree::GetTableEntry<nfd::fib::Entry>::GetTableEntry(const nfd::name_tree::GetTableEntry<nfd::fib::Entry>&)
class GetTableEntry
^
../src/ndnSIM/NFD/daemon/table/name-tree-entry.hpp:185:7: note: candidate expects 1 argument, 0 provided
../src/ndnSIM/NFD/daemon/table/name-tree-entry.hpp:185:7: note: constexpr nfd::name_tree::GetTableEntry<nfd::fib::Entry>::GetTableEntry(nfd::name_tree::GetTableEntry<nfd::fib::Entry>&&)
../src/ndnSIM/NFD/daemon/table/name-tree-entry.hpp:185:7: note: candidate expects 1 argument, 0 provided
Is it gcc being stupid?
Actions