【问题标题】:Pass string into ns3::Ipv4AddressHelper::SetBase method将字符串传递给 ns3::Ipv4AddressHelper::SetBase 方法
【发布时间】:2013-03-31 16:40:43
【问题描述】:

Topology helper 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

【问题讨论】:

    标签: c++ network-programming modeling ns-3


    【解决方案1】:

    编译器告诉您候选人需要 2 个参数(第三个是可选的。另外,请参阅 doc for Ipv4AdressHelper)。所以传递那些参数。 在docs 中,您可以看到Ipv4Adress 可以用char const* 构造。所以试试:

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

    根据您的需要更改 adress_stringmask_string

    【讨论】:

    • 不客气!并感谢您的更正,我会立即更改帖子!
    猜你喜欢
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多