我在Github上有一个私人存储库用于我正在进行的项目.到目前为止,我只在我的家用台式机上工作,但我刚买了一台笔记本电脑,并且我正在设置它,以便我可以从任何一台计算机上工作,并推/拉更改.
我为笔记本电脑的Github帐户添加了一个新的SSH密钥,并成功克隆并更改了我设置的公共测试仓库.但是,我无法克隆私人仓库.在命令行中我需要做些什么特别的事情才能克隆私人仓库?我是否需要为笔记本电脑设置一个新的GitHub帐户并将自己设置为合作者?
我用的命令是 git clone git://github.com/myusername/reponame.git
最近我在找一个想要使C++更多Haskell-y的朋友,我们想要一个基本上像这样的函数:
auto sum(auto a, auto b) {
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
显然我不能使用auto作为参数类型,所以我将其更改为:
template<class A, class B>
auto sum(A a, B b) {
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
但这也不起作用.我们最终意识到我们需要这个:
template<class A, class B>
auto sum(A a, B b) -> decltype(a + b) {
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,重点是什么?不decltype只是重复信息,因为编译器只能查看return语句?
我认为可能需要它,所以我们可以只包含一个头文件:
template<class A, class B>
auto sum(A a, B b) -> decltype(a + b);
Run Code Online (Sandbox Code Playgroud)
...但我们无论如何都不能使用这样的模板.
我考虑的另一件事是编译器可能更容易,但看起来它实际上会更难.
案例1:随着 decltype
decltype语句的类型案例2:没有 decltype
因此,考虑到这些事情,尾随返回类型的重点是decltype …
以下测试程序
#include <map>
#include <iostream>
using namespace std;
int main(int argc, char **argv)
{
map<int,int> a;
a[1]=a.size();
for(map<int,int>::const_iterator it=a.begin(); it!=a.end(); ++it)
cout << "first " << (*it).first << " second " << (*it).second << endl;
}
Run Code Online (Sandbox Code Playgroud)
在g++ 4.8.1(Ubuntu 12.04 LTS)上编译时导致不同的输出:
g++ xxx.cpp
./a.out
first 1 second 1
Run Code Online (Sandbox Code Playgroud)
在Visual Studio 2012(Windows 7)上(标准Win32控制台应用程序项目):
ConsoleApplication1.exe
first 1 second 0
Run Code Online (Sandbox Code Playgroud)
哪个编译器是对的?难道我做错了什么?
在像这样的C++函数中:
int& getNumber();
Run Code Online (Sandbox Code Playgroud)
什么&意思?它与以下不同:
int getNumber();
Run Code Online (Sandbox Code Playgroud) 我正在运行Emacs 23.3.1(Ubuntu,Oneiric包),emacs似乎不了解任何新的C++ 11关键字,constexpr,thread_local等.它也不明白'>>'是现在允许在模板参数或新的"枚举类"语法中使用.某处有更新或替代模块吗?或者失败了,有些设置让emacs在同一时间更加友好?
我几天后就开始研究smartGWT项目了,我想知道你有什么样的经历.为了避免使这成为对smartGWT或GWT或自由式讨论的抨击,我将为讨论提供一些指示:
随意添加您认为值得指出的任何内容.
该CMake的文件明确指出,file(GLOB ...)不建议收集源文件的生成,但它没有提什么建议的方法实际上是.
手动指定每个源文件听起来对我来说太过手动了.那么,收集源文件的正确方法是什么,如果没有
file(GLOB ...)?
我在寻找代表的最大值宏uint64_t为UINT_MAX是unsigned int.即我需要这个值保证为(1 << 64)-1.
我尝试使用UINT64_MAX,但用g ++编译结果:
'UINT64_MAX' was not declared in this scope
Run Code Online (Sandbox Code Playgroud)
值得一提的是我#define __STDC_LIMIT_MACROS在使用之前在代码中有这一行UINT64_MAX.
我很惊讶没有在网上找到有关它的有用信息.
好的,所以我想要做的是使用字符串作为输入(例如"16*12 + 25"),将其转换为计算机可以理解的数学评估并返回评估值.我本可以自己写这个,但它很可能需要一段时间,最后,它仍然不会像我想的那样结束,除非我想把更多的时间投入其中.
所以我的问题是,你知道可以为C++做任何脚本,库或API吗?我找到了一些java,python和.NET.但是我没有使用这些语言,我希望尽可能长时间地保持在C++中(希望在整个项目中).你有什么好主意或链接吗?
是否有可以执行以下操作的库?:
给定一个Object和一个HashMap,它枚举Hashmap的键,并在Object中查找这些键的setter并设置相关的值.看起来像这样的东西:
public Object setData(Object object, HashMap<String, Object> fields) {
for (Entry<String, Object> entry : fields.entrySet()) {
Method m = object.getClass().getMethod("set" + entry.getKey(), entry.getValue().getClass());
if (m != null) {
m.invoke(object, entry.getValue());
}
}
return object;
}
Run Code Online (Sandbox Code Playgroud)
这个任务看起来很简单,但我希望有人已经注意到了一些细微差别.如你所知,重新发明轮子(好轮子)是一种糟糕的方法.