Mercurial有一种打印根目录(包含.hg)的方法
hg root
Run Code Online (Sandbox Code Playgroud)
在git中是否有类似的东西来获取包含.git目录的目录?
考虑一下代码:
#include <stdio.h>
class Base {
public:
virtual void gogo(int a){
printf(" Base :: gogo (int) \n");
};
virtual void gogo(int* a){
printf(" Base :: gogo (int*) \n");
};
};
class Derived : public Base{
public:
virtual void gogo(int* a){
printf(" Derived :: gogo (int*) \n");
};
};
int main(){
Derived obj;
obj.gogo(7);
}
Run Code Online (Sandbox Code Playgroud)
得到此错误:
>g++ -pedantic -Os test.cpp -o test test.cpp: In function `int main()': test.cpp:31: error: no matching function for call to `Derived::gogo(int)' test.cpp:21: note: candidates are: virtual …
为什么运行时堆用于C风格语言中的动态内存分配,数据结构都称为"堆"?有一些关系吗?
我的问题很简单:std :: vector元素是否保证是连续的?在order word中,我可以使用指向std :: vector的第一个元素的指针作为C数组吗?
如果我的记忆力很好,那么C++标准就没有这样的保证.但是,如果元素不连续,那么std :: vector要求几乎不可能满足它们.
有人可以澄清一下吗?
例:
std::vector<int> values;
// ... fill up values
if( !values.empty() )
{
int *array = &values[0];
for( int i = 0; i < values.size(); ++i )
{
int v = array[i];
// do something with 'v'
}
}
Run Code Online (Sandbox Code Playgroud) 为什么C#允许代码块前没有声明(例如if
,else
,for
,while
)?
void Main()
{
{ // any sense in this?
Console.Write("foo");
}
}
Run Code Online (Sandbox Code Playgroud) 是否有可能在编译时确定C++类的大小?
我似乎记得模板元编程方法,但我可能会弄错...
抱歉没有更清楚 - 我希望在构建输出窗口中打印大小
在GCC 4.1.2的文件有这样说的-pipe
选项:
-管
使用管道而不是临时文件进行编译的各个阶段之间的通信.这无法在汇编程序无法从管道读取的某些系统上运行; 但GNU汇编程序没有问题.
我假设我能够从错误消息中判断我的系统的汇编程序是否不支持管道,所以除了这个问题,我何时使用该选项才有意义?决定使用它应该考虑哪些因素?
声明的参数与var
声明的参数之间的区别是什么out
?编译器如何区别对待它们(例如,通过生成不同的代码,或通过更改它发出的诊断)?或者,不同的修饰符是否只允许程序员记录参数的预期用途?做了什么样的影响类型的参数对此事?
就像标题所暗示的那样,我有一个简短的演示程序可以编译所有这些编译器,但是在使用gcc 4.8和gcc 4.9进行编译后运行的核心转储:
任何想法为什么?
#include <unordered_map>
struct Foo : std::unordered_map<int,int> {
using std::unordered_map<int, int>::unordered_map;
// ~Foo() = default; // adding this allows it to work
};
struct Bar {
Bar(Foo f = {}) : _f(std::move(f)) {}
// using any of the following constructors fixes the problem:
// Bar(Foo f = Foo()) : _f(std::move(f)) {}
// Bar(Foo f = {}) : _f(f) {}
Foo _f;
};
int main() {
Bar b;
// the following code works as expected
// Foo f1 …
Run Code Online (Sandbox Code Playgroud) 我想知道程序员何时使用函数try块.什么时候有用?
void f(int i)
try
{
if ( i < 0 )
throw "less than zero";
std::cout << "greater than zero" << std::endl;
}
catch(const char* e)
{
std::cout << e << std::endl;
}
int main() {
f(1);
f(-1);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:(在ideone处)
greater than zero
less than zero
Run Code Online (Sandbox Code Playgroud)
编辑:因为有些人可能认为函数定义的语法不正确(因为语法看起来不熟悉),我要说它不是不正确的.它叫做function-try-block.参见C++标准中的§8.4/ 1 [dcl.fct.def].
c++ ×6
gcc ×2
c# ×1
c++11 ×1
delphi ×1
function ×1
git ×1
heap ×1
heap-memory ×1
overriding ×1
parameters ×1
pipe ×1
polymorphism ×1
standards ×1
syntax ×1
terminology ×1
vector ×1