我使用Silverlight深度缩放做了一些示例项目(只是为了好玩).它非常酷,令人兴奋.但我很想知道幕后发生的事情是为了达到这种目的.深度缩放编辑器在其数据源的子文件夹中生成许多图像和少量XML文件.
任何人都可以解释这些东西究竟是如何运作的.有什么概念用来实现这个目标?
我只是在教自己C++命名空间(来自C#背景),我真的开始认为,即使C++比大多数其他语言做得更好,嵌套命名空间也不是其中之一!
我是否正确地认为,为了声明一些嵌套的命名空间,我必须执行以下操作:
namespace tier1
{
namespace tier2
{
namespace tier3
{
/* then start your normal code nesting */
}
}
}
Run Code Online (Sandbox Code Playgroud)
相反:
namespace tier1::tier2::tier3
{
}
Run Code Online (Sandbox Code Playgroud)
àlaC#?
当我需要转发声明时,这变得更加疯狂:
namespace tier1
{
namespace tier2
{
namespace forward_declared_namespace
{
myType myVar; // forward declare
}
namespace tier3
{
/* then start your normal code nesting */
class myClass
{
forward_declared_namespace::myType myMember;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
请记住,我开发的典型系统包括:
MyCompany::MySolution::MyProject::System::[PossibleSections]::Type
Run Code Online (Sandbox Code Playgroud)
这就是为什么你不倾向于在C++示例中看到很多名称空间的使用?或者通常只有单个(非嵌套)命名空间?
UPDATE
对于任何有兴趣的人,这就是我最终解决这个问题的方法.
您是否了解用于GUI的C++ 中强制定向布局的开源实现?优选BSD/MIT/Apache或其他(非GPL)许可.
我已经自学了C++大约4个月了.我很享受,我觉得我做得很好.然而,对我的一个问题的回答让我想到我可能会让自己陷入堕落.
那么,这里的人们如何看待C++作为第一语言学习?现在我开始有一个良好的开端值得我继续吗?
如何将C程序编译为有效的ELF格式(或RAW格式),以便可以在没有任何操作系统的情况下直接从RAM执行?假设存在一个能够将代码加载到RAM中的任何位置并开始在该地址执行的引导加载程序.确切地说,编译器(GCC)标志应该是什么?是否需要地图文件?
欢迎使用示例helloworld应用程序:)
为了详细说明我的观点,
让main()方法成为一个空的无限while循环,以确保不使用OS特定的或标准的库调用.期望的o/p是一个悬念.使用通常的GCC选项,引导加载程序肯定无法加载可执行文件,因为它是无效的ELF格式.但是,通过将-dN选项传递给链接器将使其成为有效的ELF.需要更多编译器/链接器选项才能使其挂起而不会崩溃!这些编译器选项究竟是什么?
file.c:
int main()
{
while(1);
}
Run Code Online (Sandbox Code Playgroud)
编译
gcc -c -nostdinc -fno-builtin
file.c ld -dN -nostdlib file.o
Bootloader将a.out加载到RAM并执行.
所以问题是..您是否使用过预发布产品或技术(社区技术预览版,测试版或候选发布版等)来开发自己的产品?
例如,您可能使用Microsoft的ASP.Net MVC(昨天刚刚进行了RTM)开发了一个网站,或者构建了针对SQL Server 2008 RC 1 ...的软件.
如果是这样的话
1.您(或者您)采取了哪些措施来最大限度地降低预发布产品正确发布时出现问题的风险?
2.在使用产品之前,您是否等待特定的时间范围(例如产品是候选发布者)?
3.使用预发布技术的主要优势(与风险相比)是什么?
Excel(2000以上)中是否有智能宏来删除字符串的最后一部分,如果它有一个特定的分隔符?
如果不存在分隔符,则应保留该字符串
例如,对于"."
abcd.1 => abcd
abcd => abcd
Run Code Online (Sandbox Code Playgroud)
我想我可以用Instr和Mid等组合写一些东西,但我很想知道它是否有更聪明的速记,比如"Strip('abcd.1';'.')"或者左右.
我有这个简单的测试:
double h;
...
// code that assigns h its initial value, used below
...
if ((h>0) && (h<1)){
//branch 1 -some computations
}
else{
//branch 2- no computations
}
Run Code Online (Sandbox Code Playgroud)
我列出了我的值,因为我得到了一些非常奇怪的结果,例如:h = 1然后第一个分支到达,我不明白为什么因为如果h = 1我想要计算branch2.
我被一些如此明显的东西搞糊涂了吗?
这是我计算然后使用的方式h:
double* QSweep::findIntersection(edge_t edge1,edge_t edge2) {
point_t p1=myPoints_[edge1[0]];
point_t p2=myPoints_[edge1[1]];
point_t p3=myPoints_[edge2[0]];
point_t p4=myPoints_[edge2[1]];
double xD1,yD1,xD2,yD2,xD3,yD3,xP,yP,h,denom;
double* pt=new double[3];
// calculate differences
xD1=p2[0]-p1[0];
xD2=p4[0]-p3[0];
yD1=p2[1]-p1[1];
yD2=p4[1]-p3[1];
xD3=p1[0]-p3[0];
yD3=p1[1]-p3[1];
xP=-yD1;
yP=xD1;
denom=xD2*(-yD1)+yD2*xD1;
if (denom==0) {
return NULL;
}
else{
h=(xD3*(-yD1)+yD3*xD1)/denom;
}
std::cout<<"h …Run Code Online (Sandbox Code Playgroud) c++ ×4
ant ×1
architecture ×1
bare-metal ×1
boot ×1
c ×1
cakephp ×1
deepzoom ×1
excel ×1
force-layout ×1
imaging ×1
linux ×1
namespaces ×1
php ×1
silverlight ×1
string ×1