小编lri*_*eau的帖子

用于C++中成员函数的const&,&和&&说明符

最近我正在阅读APIboost::optional并且遇到了以下问题:

T const& operator *() const& ;
T&       operator *() & ;
T&&      operator *() && ;
Run Code Online (Sandbox Code Playgroud)

我还编写了自己的程序,将成员函数定义为const&,&和&&(请注意,我不是在谈论返回类型,而是在分号之前的说明符),它们似乎工作正常.

我知道声明一个成员函数const意味着什么,但任何人都可以解释它是什么意思来声明它const&,&和&&.

c++ const c++11

54
推荐指数
2
解决办法
7202
查看次数

MSVS编译器标志/ bigobj的惩罚

基本的Google搜索bigobj问题表明很多人都遇到致命错误C1128:" 部分数量超出了目标文件格式限制:用/ bigobj编译 ".如果大量使用C++模板(如Boost库CGAL库),则错误发生的可能性更大.

这个错误很奇怪,因为它为自己提供了解决方案:设置编译器标志/bigobj!

所以这是我的问题:为什么默认情况下不设置该标志?使用该标志必须有惩罚,否则默认设置.MSDN中没有记录该惩罚.有人有线索吗?

我问这个问题,因为我想知道CGAL的配置系统是否应该/bigobj默认设置.

c++ linker-errors visual-studio

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

包与图书馆

我刚刚开始使用CMake,我注意到他们同时拥有a find_package和a find_library.这让我很困惑.有人可以解释编程世界中包和库之间的区别吗?或者,在CMake的世界?

伙计们,欣赏吧!

cmake package libraries difference

38
推荐指数
1
解决办法
6313
查看次数

查找由特定用户合并的拉取请求

是否有可能在合并它的人的github中过滤拉取请求?

就像是:

is:merged is:pr mergedBy:username
Run Code Online (Sandbox Code Playgroud)

但这不起作用

编辑:这是我提出的(我的目标是在我们的项目中创建一个最活跃的代码审查者的顶级列表):

var result = {};
$.get("/api/v3/repos/atg/atgse/pulls?state=closed&per_page=100", function(pulls){
    pulls.forEach(function(listPullItem){
        $.get(listPullItem.url, function(pull) {
            if (pull && pull.merged_by) {
                result[pull.merged_by.login] = result[pull.merged_by.login] || 0;
                result[pull.merged_by.login] ++;
            }
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

github

12
推荐指数
1
解决办法
776
查看次数

添加依赖于CMake生成的构建系统本身

简而言之:我知道如何在CMake生成的构建系统中向目标添加依赖项.但我想将依赖项添加到生成的构建系统本身.

更长的问题:在CMake生成的构建过程中,我们希望CMake在修改某些文件时自动重新运行配置步骤.不需要的细节隐藏在下面:

事实上,我们使用CMake生成CGAL库/ examples/demos的构建系统,同时也为我们的Doxygen生成的文档构建系统.它Doxyfile是由多个文件生成的.

当CMake生成器为" Makefile"时,在Makefile命名中有一个特殊目标rebuild_cache,但该目标(在Makefile级别)不是CMake目标.无论如何,我寻找一个跨平台的解决方案,即:可用于所有CMake生成器.我的印象是我想要的东西还不能用于CMake.您能否确认一下,以便我可以填写有记录的功能请求?

cmake

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

为什么不同的`this`在使用多重继承时解决

在C++中,它是使用std::enable_shared_from_this和继承的小样本代码.在p此代码,调用一个成员函数FB和FA.它p是相同的对象,但称为fa和fb采用不同的this地址.

为什么要采取不同的地址?

码:

#include <memory>
#include <iostream>

template<class T> using S = std::enable_shared_from_this<T>;

struct A: S<A>    { auto fa() const -> void { std::cerr << this << "\n";} };
struct B: S<B>, A { auto fb() const -> void { std::cerr << this << "\n";} };

auto main() -> int
{
    auto p = std::make_shared<B>();

    p -> fa();
    p -> fb();

    std::cerr << p << "\n";
}
Run Code Online (Sandbox Code Playgroud)

结果:(经过测试的编译器是Linux Mint 16 KDE上的clang ++ …

c++ memory-management std multiple-inheritance c++11

3
推荐指数
1
解决办法
169
查看次数

CGAL 中使用任意平面的 2D Delaunay 三角剖分

我是使用 CGAL 的新手,我想知道 CGAL 是否支持使用任意平面对 3D 点进行 2D Delaunay 三角剖分。CGAL 文档中的示例仅列出了Projection_traits_xy_3<R>Projection_traits_yz_3<R>Projection_traits_xz_3<R>,换句话说,是在 xy 平面、yz 平面和 xz 平面上的投影。有什么方法可以定义任意投影平面而不是使用 xy、yz 和 xz 平面?

谢谢,

2d delaunay triangulation cgal

3
推荐指数
1
解决办法
273
查看次数

如何从未知类型的变量访问嵌套类型?

如何获取未知类型变量的类的成员类型?应该是什么而不是type_of.

auto v = get_container();
type_of(v)::value_type x;
Run Code Online (Sandbox Code Playgroud)

出于可维护性的原因,我想使用auto,所以如果get_container返回类型改变,任何东西都不会破坏.

c++ c++11

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

为什么我需要在重用之前清除stringstream?

例如:

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main() {
    int num = 10;
    string str;
    stringstream toString;
    toString << num;
    toString >> str;
    cout << str << "\n"; //10

    int num2 = 20;
    string str2;
    toString << num2;
    toString >> str2;
    cout << str2 << "\n"; //str2 is empty
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我知道我必须清除这个:

toString.str("");
toString.clear();
Run Code Online (Sandbox Code Playgroud)

但是为什么在使用运算符后它不会自动清除>>

c++ stringstream

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