我通过Visual Studio 2013预处理器运行以下代码.输出令我惊讶.
hello.cpp的内容:
#define A(j) #j
A(A?)
A(B?)
A(C?)
A(D?)
A(E?)
A(F?)
A(G?)
A(H?)
A(I?)
A(J?)
A(K?)
A(L?)
A(M?)
A(N?)
A(O?)
A(P?)
A(Q?)
A(R?)
A(S?)
A(T?)
A(U?)
A(V?)
A(W?)
A(X?)
A(Y?)
A(Z?)
Run Code Online (Sandbox Code Playgroud)
命令:
cl /P hello.cpp
Run Code Online (Sandbox Code Playgroud)
hello.i包含:
#line 1 "hello.cpp"
"A?"
"B?"
"C?"
"D?"
"E?"
"F?"
"G?"
"H?"
"I?"
"J?"
"K?"
"L"
"M?"
"N?"
"O?"
"P?"
"Q?"
"R"
"S?"
"T?"
"U?"
"V?"
"W?"
"X?"
"Y?"
"Z?"
Run Code Online (Sandbox Code Playgroud)
我试着打电话给A(L?p:q)时碰到了这个,这导致了"Lp:q",这对我不利.
这是正确的,定义明确的C++吗?C++中的L和R有什么特别之处?如果文件具有.c扩展名,则L和R被视为与字母表的其余部分相同.这与C++ 11有关吗?它必须是一个新功能,因为旧版本的MSVS不会以特殊方式使用L和R.
我能做些什么来阻止MSVS 2013以这种特殊方式治疗L和R?
我熟悉Python和C++作为程序员.我正在考虑编写自己的简单Web应用程序,我想知道哪种语言更适合服务器端Web开发.
我正在寻找的一些东西:
我通常用C++编写视频游戏,我没有网络开发经验.我想写一个很好的网站有很多原因.我希望它是一种学习体验,我希望它变得有趣,我希望能够轻松地专注于"有趣的东西"(例如,更少的样板,更多应用程序的肉).
新手网络开发者的任何提示?我猜测Web应用程序框架是要走的路,但这只是挑选一个.
我在阅读这篇文章后问这个问题 http://stevehanov.ca/blog/index.php?id=95
使用cgi而不是fastcgi也不是一种惩罚吗?
更新:为什么有些人会假装回答"你的性能提升20-30%"?是纯粹的猜测还是这个数字来自可靠的基准?我看过HipHop的性能是在10倍的规模.