小编Vin*_*ard的帖子

方法链中的C++执行顺序

该程序的输出:

#include <iostream> 
class c1
{   
  public:
    c1& meth1(int* ar) {
      std::cout << "method 1" << std::endl;
      *ar = 1;
      return *this;
    }
    void meth2(int ar)
    {
      std::cout << "method 2:"<< ar << std::endl;
    }
};

int main()
{
  c1 c;
  int nu = 0;
  c.meth1(&nu).meth2(nu);
}
Run Code Online (Sandbox Code Playgroud)

方法是:

method 1
method 2:0
Run Code Online (Sandbox Code Playgroud)

开始nu时为什么不是1 meth2()

c++ operator-precedence chaining

105
推荐指数
4
解决办法
7411
查看次数

在Windows上pip install access被拒绝

我试图pip install mitmproxy在Windows 上运行,但我仍然拒绝访问,即使使用cmdPowerShell使用该Run as Administrator选项.

WindowsError: [Error 5] Access is denied: 'c:\\users\\bruno\\appdata\\local\\temp\\easy_install-0fme6u\\cryptography-0.9.1\\.eggs\\cffi-1.1.2-py2.7-win-amd64.egg\\_cffi_backend.pyd'
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

python windows pip access-denied

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

void_t"可以实现概念"吗?

我正在观看Walter Brown的CppCon2014关于模板元编程的第二部分,在此期间他讨论了他的新颖void_t<>结构的用法.在他的演讲中,Peter Sommerlad问他一个我不太明白的问题.(链接直接转到问题,正在讨论的代码直接发生在那之前)

索默拉德问道

沃尔特,这是否意味着我们现在实际上可以实现概念精简版?

沃尔特回应了什么

哦耶!我已经完成了......它没有完全相同的语法.

我理解这个交换是关于Concepts Lite的.这种模式真的那么多才多艺吗?无论出于何种原因,我都没有看到它.有人可以解释(或描绘)这样的事情会是什么样子?这是关于enable_if和定义特征,还是提问者指的是什么?

void_t模板定义如下:

template<class ...> using void_t = void;
Run Code Online (Sandbox Code Playgroud)

然后他使用它来检测类型语句是否格式正确,使用它来实现is_copy_assignable类型特征:

//helper type
template<class T>
using copy_assignment_t
= decltype(declval<T&>() = declval<T const&>());

//base case template
template<class T, class=void>
struct is_copy_assignable : std::false_type {};

//SFINAE version only for types where copy_assignment_t<T> is well-formed.
template<class T>
struct is_copy_assignable<T, void_t<copy_assignment_t<T>>> 
: std::is_same<copy_assignment_t<T>,T&> {};
Run Code Online (Sandbox Code Playgroud)

由于这个话题,我理解这个例子是如何工作的,但是我没有看到我们如何从这里得到像Concepts Lite这样的东西.

c++ templates template-meta-programming c++11 c++-concepts

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

Python - 使用'set'查找列表中的不同项

我需要在Python中比较两个列表,并且我知道使用该set命令来查找类似的项目,但是我是否可以使用另一个命令来自动比较它们,而不是必须为它编写代码?

我想找到不属于每个项目的项目.说清单一如下:

[1, 2, 3, 4, 5, 6] 
Run Code Online (Sandbox Code Playgroud)

列表二是:

[1, 2, 3, 4, 6]
Run Code Online (Sandbox Code Playgroud)

我希望找到5列表中缺少的,希望通过命令,但我知道如何循环比较.

python compare

38
推荐指数
3
解决办法
4万
查看次数

为什么std :: stack不使用模板模板参数?

为什么std::stackstd::queue使用类型模板参数,而不是模板的模板参数为他们的基础容器类型?

即为什么stack声明如下:

template<typename T, typename Container = deque<T>>
class stack;
Run Code Online (Sandbox Code Playgroud)

但不是这样的:

template<typename T, template<typename> class Container = deque>
class stack;
Run Code Online (Sandbox Code Playgroud)

c++ templates

36
推荐指数
4
解决办法
2094
查看次数

maven找不到我当地的文物

我似乎无法逃避,mvn -o package因为它抱怨

存储库系统处于脱机状态,但工件com.liferay.portal:util-bridges:jar:6.1.20在本地存储库中不可用.

但我检查了我的本地存储库,那里存在工件.我也尝试过将updatePolicy设置为从不在settings.xml文件中但是无效的解决方案.

maven

30
推荐指数
2
解决办法
4万
查看次数

如何为本地Rails项目设置Postgres数据库?

我最近买了一台新机器,现在想从Github处理我的项目.我很好奇如何在我的本地机器上正确设置Postgres数据库.我有postgresql,pgadmin3libpq-dev安装在Ubuntu(12.04)上.

我拉下项目:

git clone https://github.com/thebenedict/cowsnhills.git

并运行:

bundle.

当我跑:

rake db:create && rake db:schema:load

我收到此错误:

rake db:create && rake db:schema:load
FATAL:  password authentication failed for user "cnh"
FATAL:  password authentication failed for user "cnh"
....
Run Code Online (Sandbox Code Playgroud)

config/database.yml文件如下所示:

development:
  adapter: postgresql
  encoding: unicode
  host: localhost
  database: cnh_development
  pool: 5
  username: cnh
  password: cnh

test:
  adapter: postgresql
  encoding: unicode
  host: localhost
  database: cnh_test
  pool: 5
  username: cnh
  password: cnh

production:
  adapter: postgresql
  encoding: unicode
  host: …
Run Code Online (Sandbox Code Playgroud)

postgresql ubuntu ruby-on-rails rails-postgresql postgresql-9.1

26
推荐指数
2
解决办法
4万
查看次数

如何正确使用转换构造函数?

我读到,当提供适合转换构造函数或操作数时,C++编译器能够隐式转换类型.我实际上发现了看起来像这样的示例代码:

class Dog{
    private:
       string name;
    public:
        Dog(string n):name(n){} //This as the converting constructor
}

int main(){
    Dog d = "rover";
}
Run Code Online (Sandbox Code Playgroud)

每当我运行此代码时,编译器都会抛出一条错误消息:

从'const char [6]'转换为非标量类型'Dog'请求Dog d ="rover";

在编译时我添加了编译器选项-std=c++11,所以它不应该是关于C++版本的,对吧?
我在网上找到的例子(至少对我来说)看起来完全相同,所以我不知道这里出了什么问题.
我对此主题的输入来自此视频: 转换构造函数和重载运算符 - 最新的

c++ constructor casting type-conversion c++11

24
推荐指数
3
解决办法
2261
查看次数

声明lambda时<:和:>是什么意思?

我偶然发现了以下lambda语法,我不明白:

#include <iostream>

template<typename Callback>
void do_it(Callback callback) {
        callback();
}

template<typename T>
void p() {
        std::cout << __PRETTY_FUNCTION__ << std::endl;
}

int main() {
        auto a = <:&:> { };
        p<decltype(a)>();
        do_it(<:&:> { std::cout << "Hello" << std::endl; }); //this
}
Run Code Online (Sandbox Code Playgroud)

上面的程序产生一个输出:

void p() [with T = main()::__lambda0]
Hello
Run Code Online (Sandbox Code Playgroud)

你能解释一下,是什么<:&:> {/* ... */}意思?是否有可能将这种方式声明为带有参数的lambda?

c++ lambda digraphs c++11

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

使用say函数时,为什么要指定use语句?

这个问题可能很愚蠢.但我刚开始探索Perl.我使用的是Perl v5.16.2.我知道该say声明已在5.10中引入.

#!/usr/bin/perl

say "Hello World!";
Run Code Online (Sandbox Code Playgroud)

当我尝试运行上面的程序时,我收到以下错误:

$ ./helloPerl 
String found where operator expected at ./helloPerl line 3, near "say "Hello World!""
    (Do you need to predeclare say?)
syntax error at ./helloPerl line 3, near "say "Hello World!""
Execution of ./helloPerl aborted due to compilation errors.
Run Code Online (Sandbox Code Playgroud)

但是当我添加声明时use 5.016;,它正在给我正确的输出.

#!/usr/bin/perl

use 5.016;
say "Hello World!";
Run Code Online (Sandbox Code Playgroud)

我怀疑的是,我使用的是perl v5.16.2,它高于5.010.我为什么要use在这里使用语句提到Perl版本?

perl

15
推荐指数
2
解决办法
2617
查看次数