假设我在Xcode 4.4.1中有以下C++代码.
int Func();
...
void Test()
{
auto Variable = Func();
...
DoSomething(Variable);
}
Run Code Online (Sandbox Code Playgroud)
假设我想在第二行的最后一行找出变量的类型.我怎么能在Xcode中做到这一点?
IIRC,在Visual Studio中,将鼠标光标放在变量上,然后出现工具提示.这在Xcode中不会发生.
我知道这3种方法,但我想知道是否有更好的东西,我不知道.
如果你按住alt并单击Variable,它会说"在SomeFile.h中定义".
如果按住cmd并单击"变量",则会转到定义"变量"的行.但是你必须找出Func()的返回类型,它涉及更多的步骤.我正在寻找最快的方法来做到这一点.
如果将光标放在变量的末尾,然后按Ctrl + Space,它将显示自动完成,其中列出了变量类型.这可行,但它看起来非常间接(例如,如果你把光标放在别处,你可能会在自动完成列表中获得很多条目,迫使你搜索变量).有没有更直接的方法来做到这一点?
如何找到Xcode中最后一行的变量类型?
根据http://msdn.microsoft.com/en-us/library/9ekhdcxs(v=vs.80).aspx,
如果您尝试在其前向声明仅在范围内的类型的堆栈上声明对象,也会发生C2079.
Run Code Online (Sandbox Code Playgroud)class A; class B { A a; // C2079 }; class A {};可能的决议:
Run Code Online (Sandbox Code Playgroud)class A; class C {}; class B { A * a; C c; }; class A {};
我的问题是当我遇到以下情况时如何消除此错误:
class A; // Object
class B // Container
{
public:
typedef int SomeTypedef;
private:
A a; // C2079
};
class A {
void Foo(B::SomeTypedef);
};
Run Code Online (Sandbox Code Playgroud)
在声明B之前我无法声明A,因为A需要使用B的typedef,并且由于此错误,我无法在A之前声明B.
一种可能的解决方案是使用指向A而不是堆栈变量的指针,但我不想要指针(在这种情况下).
另一个解决方案是不使用typedef,或者不将它放在B类中.但是如果它属于B并且我不想污染我的项目的命名空间,如B :: SomeTypedef是一个比SomeTypedef更合适的名称呢?
当我运行/bin/bash有两个参数的过程中-c和SomeUserInput,
其中SomeUserInput是 echo $TERM
输出是
xterm-256color
有没有办法可以通过命令行参数/bin/bash设置$ TERM的值,以便上面的调用echo $TERM会打印我指定的其他东西?
(是的,我已经做了很多挖掘man bash和搜索其他地方,但找不到答案;虽然我认为它可能存在.)
我感到非常无助,因为我无法谷歌 - 谷歌只是忽略了那些角色(即使我把它们放在双引号中).
当你打开一个bash终端并执行以下操作时会调用它:
diff <(command) <(cat some_file)
Run Code Online (Sandbox Code Playgroud)
几周前我找到了答案,但现在我记不起来了.
此外,我记得有一些方法可以看到真正发生的事情,因为它会创建匿名管道或其他东西.我如何从上面的命令到看到类似的东西:
diff /dev/fd/53 /dev/fd/54
Run Code Online (Sandbox Code Playgroud)
实际上最终会发生什么.几个星期前我做了这个,但不记得了......
奖励积分如果有人知道如何强制谷歌搜索<(command)并找到特定的结果,而不是像你搜索的那样command?
根据http://en.cppreference.com/w/cpp/language/access,
受保护的成员可以在类及其方法及其后代中访问
它们只是指直系后代,而不是后代的后代,还是指所有后代?
例如,如果C类是B的子类,B是具有受保护成员的A的子类,那么B显然可以访问它,但是C呢?