小编New*_*ton的帖子

使用gcc强制实例化对象

在以下代码中,gcc不实例化NSP :: Admin和NSP :: Server对象.它只是跳过它们.

int main(int argc, char **argv)
{
  // Here we bootstrap google logging
  // we also install the signal handler
  google::InitGoogleLogging(argv[0]);
  google::InstallFailureSignalHandler();
  // now we parse the arguments with gflags
  google::ParseCommandLineFlags(&argc, &argv, true);

  NSP::Admin            admin();
  NSP::server           server();

  DLOG(INFO) << "boost io_service run";
  NSP::IOService::getIOService().run();
}
Run Code Online (Sandbox Code Playgroud)

如果我向CTORS添加一个参数,它们就会被实例化.示例:

  NSP::Admin            admin(1);
  NSP::server           server(1);
Run Code Online (Sandbox Code Playgroud)

我不能用gdb打破它们,并且跳过它们.这两个对象使用boost io服务注册自己,并在其CTORS中调用方法.

NSP是项目命名空间.

在FreeBSD,glog,gflags和boost asio上使用gcc4.2.

c++ gcc

0
推荐指数
1
解决办法
332
查看次数

标签 统计

c++ ×1

gcc ×1