小编kun*_*ami的帖子

在eclipse上恢复项目的maven插件

我通过点击"禁用Maven Nature"为项目禁用了m2eclipse插件,如下图所示.然后Maven条目从菜单中消失,我无法恢复它.

在此输入图像描述

如何恢复/重置/重新启用以便再次显示该条目?

PS 1:我想在不重新导入项目的情况下这样做.

PS 2:我已经看过了${WORKSPACE}/.metadata\.plugins\org.eclipse.m2e.core.ui,${WORKSPACE}/.metadata\.plugins\org.eclipse.m2e.core但似乎没什么关系.

eclipse m2eclipse

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

缺点是C++中的异常

我正在阅读谷歌C++风格指南,并在例外部分感到困惑.根据指南,使用它的一个缺点是:

异常安全需要RAII和不同的编码实践.需要大量的支持机制才能使编写正确的异常安全代码变得容易.此外,为了避免要求读者理解整个调用图,异常安全代码必须将写入持久状态的逻辑隔离到"提交"阶段.这将带来好处和成本(可能是您被迫混淆代码以隔离提交的地方).允许例外将迫使我们总是支付这些费用,即使它们不值得

具体来说,我不明白的陈述是这样的:

(...)异常安全代码必须将写入持久状态的逻辑隔离到"提交"阶段.

还有这个:

(...)也许你被迫混淆代码来隔离提交(...).

我想我不习惯术语"持久状态","提交阶段","混淆代码以隔离提交".关于这些术语的一些小解释,例子或参考可能是很好的,也可能是为什么这是真的.

c++

14
推荐指数
3
解决办法
6479
查看次数

保持指向变量的指针超出范围是否安全?

示例代码:

#include <stdio.h>
int main (){
    int *p;
    {
        int v = 1;
        p = &v;
    }
    printf("%d\n", *p);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这段代码工作正常,但我不确定是否保证v的地址将被保留.

c pointers

12
推荐指数
2
解决办法
966
查看次数

clang ++ - 致命错误:找不到'bits/c ++ config.h'文件

我正在使用clang 2.9,从源代码编译,当我尝试编译这样一个简单的代码时:

#include <iostream>

int main (){
  std::cout << "Hello\n";
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

/usr/include/c++/4.5/string:39:10: fatal error: 'bits/c++config.h' file not found
Run Code Online (Sandbox Code Playgroud)

当我包括/usr/include/c++/4.5/i686-linux-gnu,我得到

/usr/bin/ld: cannot find crt1.o: No such file or directory
/usr/bin/ld: cannot find crti.o: No such file or directory
/usr/bin/ld: cannot find crtbegin.o: No such file or directory
/usr/bin/ld: cannot find -lstdc++
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find -lgcc
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题的任何想法?

clang

10
推荐指数
0
解决办法
2935
查看次数

std :: vector是否改变了它的地址?怎么避免

由于向量元素是连续存储的,我猜它在一些push_back之后可能没有相同的地址,因为初始分配的空间是不够的.

我正在编写一个代码,我需要对向量中的元素的引用,如:

int main(){
    vector<int> v;
    v.push_back(1);
    int *ptr = &v[0];
    for(int i=2; i<100; i++)
        v.push_back(i);
    cout << *ptr << endl; //?
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是ptr包含引用并不一定正确,对v[0]吧?怎样才能保证呢?

我的第一个想法是使用指针向量和动态分配.我想知道是否有更简单的方法吗?

PS.:实际上我使用的是类的向量而不是int,但我认为问题是相同的.

c++ stl vector

9
推荐指数
5
解决办法
8059
查看次数

构建boost库的子集

我正在尝试只构建一个boost库的子集.例如,我有这个代码:

TEST.CPP:

#include <boost/thread.hpp>

int main (){
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

然后我做

./bcp --scan test.cpp ~/dev/boost_compact/
Run Code Online (Sandbox Code Playgroud)

因此依赖项文件被复制到~/dev/boost_compact/boost.

然后,按照这个答案,我复制常规boost的根目录下的所有文件以及tools目录并运行

./bootstrap
./bjam
./bjam install
Run Code Online (Sandbox Code Playgroud)

这会将所有标头复制到目标目录,但不会构建/复制库.同样的一系列动作确实有效.我究竟做错了什么?

c++ boost bjam

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

getResourceAsStream()可以在jar文件外找到文件吗?

我正在开发一个使用库来加载配置文件的应用程序:

InputStream in = getClass().getResourceAsStream(resource);
Run Code Online (Sandbox Code Playgroud)

然后我的应用程序打包在一个.jar文件中.如果resource.jar文件内,我可以指定路径为"/relative/path/to/resource/resource".

我想知道是否有可能找到资源,如果它在.jar文件之外,在这种情况下,我将如何指定路径.

(假设我的应用程序的jar在app/,资源在其中app/config).


该方案采用了3 党库.该库使用该资源作为配置文件.

我还想调整配置文件,而不必一直解压缩/压缩jar文件.

java resources jar

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

怀疑在构造函数中工作的一个缺点

我正在阅读谷歌C++风格指南,并在"在构造函数中的工作"部分感到困惑.在构造函数中做繁重工作的缺点之一是:

如果工作调用虚函数,则不会将这些调用分派给子类实现.即使你的类目前没有被子类化,你的类的未来修改也可以悄悄地引入这个问题,造成很多混乱.

我不明白这意味着什么.有人可以提供解释,为什么这可能被认为是一个缺点?

c++

7
推荐指数
1
解决办法
423
查看次数

显式覆盖虚函数

我刚刚发现,C++/CLI对标准C++的关键字不存在(AFAIK): override.

我对C++/CLI了解不多,所以,有人可以解释它包含在哪个目的,以及它是否是一个被添加到C++的理想功能?

c++ overriding virtual-functions c++-cli

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

运算符&=没有定义vector <bool>的元素?

我做了一些测试operator &=.如以下示例所示,这适用于单一bool类型和vector<int>类型,但不适用vector<bool>.

#include <vector>
int main (){

    bool a, b;
    a &= b; // ok
    std::vector<bool> c(1);
    c[0] &= b; // error
    c[0] = c[0] & b; // ok
    std::vector<int> d(1);
    d[0] &= b; // ok

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

谁能告诉我们这里发生了什么?

(我正在使用gcc 4.4.3)

c++

6
推荐指数
2
解决办法
423
查看次数

标签 统计

c++ ×6

bjam ×1

boost ×1

c ×1

c++-cli ×1

clang ×1

eclipse ×1

jar ×1

java ×1

m2eclipse ×1

overriding ×1

pointers ×1

resources ×1

stl ×1

vector ×1

virtual-functions ×1