小编And*_*ndy的帖子

如何使用MSYS2获取旧版本的软件包?

我决定尝试使用CLion for Windows,它建议使用MinGW或Cygwin进行编译.

我将MSYS2包管理器安装到默认文件夹中,C:\msys64通过运行update-core和更新它pacman -Su.

然后我使用pacman -S mingw-w64-x86_64-gcc已经放入的MinGW64软件包下载了C:\msys64\mingw64.

问题是,pacman -S mingw-w64-x86_64-gcc目前下载的版本5.0,CLion尚不支持.

MSYS2是否支持安装旧版本的软件包(MinGW版本4.9.2应该可以正常工作)?我尝试使用MinGW软件包进行搜索pacman -Ss mingw,但列表非常长,而且之前我没有使用过MinGW,我真的不知道该选择什么.

windows gcc mingw package-managers msys2

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

当没有定义默认导出时,从'module'导入模块导入什么?为什么它与import*作为模块不同?

我是JavaScript的新手,最近一直在努力进口.有一件事我无法绕过头脑.

在较旧的节点模块(主要是那些在ES6之前看到灯光的模块)中,可以使用npm安装,例如express,通常没有定义默认导出.

我的IDE(WebStorm)标记以下行,并且未在导入的模块通知中声明默认导出.

import express from 'express';
Run Code Online (Sandbox Code Playgroud)

尝试将整个模块作为别名导入时,可以避免此消息

import * as express from 'express';
Run Code Online (Sandbox Code Playgroud)

隐式告诉我的IDE只导入所有内容并命名它express,但是这样做会导致express在尝试在以下行上实例化应用程序时不是函数错误.

const app = express();
Run Code Online (Sandbox Code Playgroud)

特别是原始导入(没有别名)有效.

在没有定义默认导出的情况下,使用不带别名的import语句导入的确切内容是什么?我认为这是整个模块,但似乎并非如此.

javascript import ecmascript-6

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

具有std :: function参数的函数不接受lamba函数

我试图通过实现std::iterator我自己的双链表集合并尝试使用我自己的sort函数对它进行排序来更熟悉C++ 11标准.

我希望sort函数接受lamba作为一种排序的方式,通过使sort接受a std::function,但它不编译(我不知道如何实现move_iterator,因此返回集合的副本而不是修改传递的集合).

template <typename _Ty, typename _By>
LinkedList<_Ty> sort(const LinkedList<_Ty>& source, std::function<bool(_By, _By)> pred)
{
    LinkedList<_Ty> tmp;
    while (tmp.size() != source.size())
    {
        _Ty suitable;
        for (auto& i : source) {
            if (pred(suitable, i) == true) {
                suitable = i;
            }
        }
        tmp.push_back(suitable);
    }
    return tmp;
}
Run Code Online (Sandbox Code Playgroud)

我对函数的定义是错误的吗?如果我尝试调用该函数,我会收到编译错误.

LinkedList<std::string> strings{
    "one",
    "two",
    "long string",
    "the longest of them all"
};

auto sortedByLength = sort(strings, [](const std::string& a, const …
Run Code Online (Sandbox Code Playgroud)

lambda c++11 std-function visual-studio-2013

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

为什么将向量视为通过值传递,即使它是由const引用传递的?

我最近编写了一个非常简单的代码class,它负责查找a中的min和max值std::vector,即使我将集合作为a const reference传递给class'构造函数然后更改向量(即将元素推入其中)或者从外面移除一个),内部的向量class保持不变.

#include <vector>
#include <algorithm>

class MinMaxFinder
{
public:
    MinMaxFinder(const std::vector<int>& numbers) : numbers(numbers)
    {
    }
    const int Min() const
    {
        this->findMinAndMax();
        return this->min;
    }
    const int Max() const
    {
        this->findMinAndMax();
        return this->max;
    }

protected:
    std::vector<int> numbers;
    int min;
    int max;

    void findMinAndMax()
    {
        // std::minmax_element call to find min and max values
    }
};
Run Code Online (Sandbox Code Playgroud)

我认为传递引用的点是为了不复制大对象,但是我的代码现在的工作方式似乎是复制集合.

#include <vector>
#include <iostream>
#include "MinMaxFinder.h"

int main(int argc, char* argv[])
{
    std::vector<int> …
Run Code Online (Sandbox Code Playgroud)

c++ oop reference vector c++11

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