小编Pos*_*ubb的帖子

C++:如何编写const_iterator?

我用迭代器编写了自己的容器模板.我如何实现const_iterator?

template <class T>
class my_container {
 private:
  ...

 public:
  my_container() : ... { }
  ~my_container() { }

  class iterator : public std::iterator<std::bidirectional_iterator_tag, T> {
  public: ...
Run Code Online (Sandbox Code Playgroud)

c++ iterator const-iterator

8
推荐指数
1
解决办法
8261
查看次数

用于远程构建的Eclipse CDT设置

有没有更好的方法来设置Eclipse CDT进行本地编辑和远程构建?

我正在研究一个在Linux中使用GNU make的C++项目.代码在Linux服务器上的CVS下.

当我在实验室时,我在Linux-x64 PC上使用Eclipse CDT.该项目建立在Linux-x86 PC上.实验室中的所有计算机(包括CVS服务器)都具有NFS挂载.

当我在家时,我在Windows 7 PC上使用Eclipse CDT.Windows PC通过SSH隧道连接到Linux CVS服务器.要编辑源代码,我将Linux Eclipse工作区下的C++项目同步到我的Windows Eclipse工作区.(我也可以在Windows PC上进行远程CVS检查.)要在家中构建,我使用自定义构建命令

  1. SSH到Linux-x86 PC,
  2. rsync是从我的Windows Eclipse工作区到我的Linux Eclipse工作区的C++项目,
  3. 然后在Liunx-x86 PC上运行make,指定Makefile的正确路径.

为了在实验室和家庭之间来回切换而不是每次都对CVS进行更改,我使用rsync.当我从实验室转换到家时,我将源同步到我的Windows Eclipse工作区.当我在家中构建时,源会将rsync返回到Linux Eclipse工作区.

有没有一个更好,更不成功的方法来做到这一点?

(我对远程调试不感兴趣.)

eclipse eclipse-cdt

8
推荐指数
1
解决办法
1万
查看次数

链接到C++库时在C中使用setjmp和longjmp

我想在C程序中使用setjmp和longjmp,该程序链接到用C++实现的库(但有一个C API).

C++代码确实进行了动态内存分配,指针通过API传递,但只要代码的C端正确管理那些(不透明)对象,使用longjmp就不会有任何混乱,对吧?

我知道在C++代码中使用这些函数是不安全的,但它是否应该在链接到C++代码的C代码中安全?

c c++ longjmp setjmp

6
推荐指数
1
解决办法
743
查看次数

可以在一个缓冲区上多次调用MPI_Isend吗?

关于MPI_Isend,MPI标准说"非阻塞发送调用表明系统可能开始从发送缓冲区中复制数据.在调用非阻塞发送操作之后,发送方不应访问发送缓冲区的任何部分,直到发送完成. " (http://www.mpi-forum.org/docs/mpi-11-html/node46.html)

是在另一个发送调用ok中引用发送缓冲区,还是包含在"访问发送缓冲区的任何部分"中?

换句话说,发件人的以下C代码是否正确?

MPI_Request req[2];
MPI_Status statuses[2];
...
MPI_Isend(buf, type, count, dest0, tag, comm, &req[0]);
MPI_Isend(buf, type, count, dest1, tag, comm, &req[1]);
MPI_Waitall(2, req, statuses);
Run Code Online (Sandbox Code Playgroud)

message-passing mpi

6
推荐指数
1
解决办法
2134
查看次数

如何在INSERT,Cassandra C++驱动程序中将值绑定到TTL

我在Cassandra Datastax C++驱动程序中使用预处理语句.如何将整数值绑定到"USING TTL?" 准备好的声明的一部分?

我的陈述是这样的

INSERT INTO table (column1, column2, column3)  VALUES (?, ?, ?) USING TTL ?
Run Code Online (Sandbox Code Playgroud)

换句话说,如果我使用该位置绑定到TTL,它的位置是什么?(在这个例子中,它是4吗?)如果我按列名使用bind,它的列名是什么?

看起来这可以在CQL中完成,但我找不到任何关于C++驱动程序API的文档来执行此操作.

c++ cassandra

6
推荐指数
1
解决办法
466
查看次数

如何获取正在运行的Perl脚本的路径和名称(C中的argv [0])

在C/C++(bash,也是?)中,第一个命令行参数argv [0]是二进制文件名(以用户调用的绝对路径或相对路径为前缀).

在Perl中,第一个命令行参数$ ARGV [0]是脚本的路径和名称之后的第一个命令行参数.

Perl脚本如何获取用于调用它的路径和名称?

谢谢!

perl command-line-arguments

3
推荐指数
2
解决办法
3182
查看次数