Передайте строку в метод ns3 :: Ipv4AddressHelper :: SetBase

Помощник по топологии Ipv4AddressHelper позволяет установить базовый адрес, как показано в примере.

Ipv4AddressHelper address;
address.SetBase ("10.1.1.0", "255.255.255.0");

Я хочу, чтобы, например, динамически создавалось произвольное количество адресов.

  ...
for( uint32_t subnetC = 0; subnetC < nSubnets; subnetC++ )
{
string ip = "10.1." + lexical_cast< string >( subnetC + 1 ) +".0";
ipList.push_back( ip );
}
...
vIpv4AddressHelper[ someIndex ].SetBase(ipList[ someIndex ], "255.255.255.0" );
...

Однако я получаю ошибку

 error: no matching function for call to ‘ns3::Ipv4AddressHelper::SetBase(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const char [14])’
note: candidates are: void ns3::Ipv4AddressHelper::SetBase(ns3::Ipv4Address, ns3::Ipv4Mask, ns3::Ipv4Address)

Как передать строку SetBase ?

1

Решение

Компилятор сообщает, что кандидату нужно 2 параметра (третий необязательный. Также см. документ для Ipv4AdressHelper). Так что передайте эти параметры.
в документы ты это видишь Ipv4Adress может быть построен с char const*, Так что постарайтесь:

address.SetBase (ns3::Ipv4Adress(adress_string.c_str()), ns3::Ipv4Mask(mask_string.c_str()));

изменения adress_string а также mask_string в соответствии с вашими потребностями.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]