小编Arm*_*yan的帖子

转义序列\ f - 表格Feed - 究竟是什么?

\f据说是形式饲料.\t是一个标签,\a是一个哔哔声,\n是一个换行符.什么是表格输入 - \f?以下程序

#include <iostream>
int main()
{
   std::cout << "hello\fgoodbye" << std::endl;  
}
Run Code Online (Sandbox Code Playgroud)

hello然后打印一个女性标志(一个颠倒的圣手榴弹 :)然后goodbye全部在一条线上.

c++ escaping

60
推荐指数
4
解决办法
10万
查看次数

纯虚函数可能没有内联定义.为什么?

纯虚函数是那些虚拟的成员函数,具有pure-specifier(= 0;)

C++ 03第10.4条第2款告诉我们抽象类是什么,作为旁注,以下内容:

[注意:函数声明不能​​同时提供纯指定符和定义-end note] [示例:

struct C {
virtual void f() = 0 { }; // ill-formed
};
Run Code Online (Sandbox Code Playgroud)

- 末端的例子]

对于那些不太熟悉这个问题的人,请注意纯虚函数可以有定义,但上面提到的条款禁止这些定义以内联方式出现(lexically in-class).(对于定义纯虚函数的用法,您可能会看到,例如,这个GotW)

现在,对于所有其他类型和类型的函数,它被允许提供类内定义,并且这种限制乍一看似乎绝对是人为的和莫名其妙的.想到这一点,它似乎在第二次和随后的一瞥:)但我相信如果没有具体原因那么限制将不存在.

我的问题是:有人知道这些具体原因吗?也欢迎良好的猜测.

笔记:

  • MSVC确实允许PVF具有内联定义.所以不要惊讶:)
  • inline此问题中的单词未引用内联关键字.它应该是词汇上的词汇

c++ pure-virtual language-lawyer

59
推荐指数
3
解决办法
5342
查看次数

C中有const吗?

这个问题可能很幼稚,但是:

  • constC中有关键字吗?
  • 从哪个版本?
  • constC和C++ 之间是否存在语义和/或语法差异?

c c++ language-comparisons const

51
推荐指数
5
解决办法
2万
查看次数

你如何调试Windows服务?

我阅读了有关该主题的MSDN文章.报价:

由于服务必须在服务控制管理器的上下文中而不是在Visual Studio中运行,因此调试服务并不像调试其他Visual Studio应用程序类型那样简单.要调试服务,必须启动该服务,然后将调试器附加到运行它的进程.然后,您可以使用Visual Studio的所有标准调试功能来调试应用程序.

现在我的问题是我的服务首先无法启动.首先它崩溃,并说:

MyServiceName.exe [3596]中发生未处理的异常(System.Runtime.InteropServices.COMException)

并建议我调试它(​​当我选择一个时,调试器实例会立即崩溃).然后它说

无法在本地计算机上启动MyServiceName服务.错误1053:服务未及时响应启动或控制请求

那么,我如何调查/调试我的服务无法启动的原因?问题是我创建了一个控制台应用程序,它完全可以完成服务的工作,并且工作正常.(我的意思是我只是将OnStart()方法和主循环的内容复制到main中.

任何帮助,将不胜感激.

该服务是用C#编写的,大量使用互操作.我正在使用VS2008

c# c++ debugging windows-services

47
推荐指数
7
解决办法
2万
查看次数

在Qt中添加额外的编译器选项

在Qt中我可以指定其他编译器选项吗?比如-std = c ++ 0x?

c++ qt qt-creator

43
推荐指数
3
解决办法
6万
查看次数

规避模板专业化

假设我是某个模板库(CTL)的用户,它定义了一个名为的模板,比方说,Hector

template <class T>
class Hector {...};
Run Code Online (Sandbox Code Playgroud)

在其文档中,它提供了许多关于Hector模板行为的保证.但是它还定义了某种类型的特化Cool

template <>
class Hector<Cool> {....};
Run Code Online (Sandbox Code Playgroud)

专业化的目的是更优化的实现Hector,但不幸的是,由于这种优化,许多保证Hector被违反.

目前我真的不需要优化,我宁愿保留所有的保证Hector.有没有办法,如果不改变库代码(CTL是一个非常值得尊敬的库,你知道),绕过专业化吗?有什么办法吗?也许写一些包装?什么?我只想让编译器以Hector<Cool>正常的,非优化的方式生成代码,并提供所有保证.

c++ templates template-specialization

38
推荐指数
4
解决办法
841
查看次数

以编程方式获取C#Stack Trace

可能重复:
如何在.NET中打印当前的堆栈跟踪,没有任何异常?

抛出异常时,其文本包含堆栈跟踪.我可以以某种方式获得堆栈跟踪文本(包括文件和行)没有例外吗?

public void f()
{
   //blah
   string stacktrace = ???;
   //blah
}
Run Code Online (Sandbox Code Playgroud)

.net c# stack-trace

38
推荐指数
3
解决办法
3万
查看次数

检查进程是否使用批处理文件返回0

我想用批处理文件启动一个进程,如果它返回非零,则执行其他操作.我需要正确的语法.

像这样的东西:

::x.bat

@set RetCode=My.exe
@if %retcode% is nonzero
   handleError.exe
Run Code Online (Sandbox Code Playgroud)

作为奖励,您可以考虑回答以下问题,请:)

  • 如何用复合语句写if
  • 如果应用程序My.exe无法启动因为某些DLL丢失,我的工作是否正常?如果没有,我怎么能检测到My.exe无法启动?

windows process batch-file exit-code

34
推荐指数
3
解决办法
10万
查看次数

c ++ #ifdef Mac OS X问题

我是C++的新手.我目前正在开展一个小组项目,我们希望我们的课程兼容实验室计算机(Windows)和我的计算机(Mac OS X).

以下是我们在文件顶部放置的内容:

#ifdef TARGET_OS_X
#    include <GLUT/glut.h>
#    include <OpenGL/OpenGL.h>
#elif defined _WIN32 || defined _WIN64
#    include <GL\glut.h>
#endif
Run Code Online (Sandbox Code Playgroud)

我意识到之前已经问过这个问题,但是我的搜索给了我相互矛盾的答案,例如"_MAC","TARGET_MAC_OS","MACINTOSH"等.在#ifdef语句中输入的当前和正确的声明是什么兼容Mac?现在它不起作用.

谢谢!

c++ macos compatibility conditional-compilation

34
推荐指数
4
解决办法
4万
查看次数

在反向迭代向量

我需要迭代从结尾到beginnig的向量."正确"的方式是

for(std::vector<SomeT>::reverse_iterator rit = v.rbegin(); rit != v.rend(); ++rit)
{
    //do Something
}
Run Code Online (Sandbox Code Playgroud)

当doSomething涉及了解实际索引时,需要使用rit进行一些计算以获得它,就像 index = v.size() - 1 - (rit - v.rbegin)

如果无论如何都需要索引,那么我坚信最好使用该索引进行迭代

for(int i = v.size() - 1; i >= 0; --i)
{
    //do something with v[i] and i; 
}
Run Code Online (Sandbox Code Playgroud)

这会发出一个i已签名v.size()且未签名的警告.改为

for(unsigned i = v.size() - 1; i >= 0; --i) 在功能上是错误的,因为这实际上是一个无限循环 :)

什么是美学上很好的方式来做我想做的事情

  • 没有警告
  • 不涉及演员阵容
  • 并不过分冗长

我希望我不是在寻找不存在的东西:)

c++ iteration stl

33
推荐指数
4
解决办法
3万
查看次数