源代码中的ASCII图是否值得他们创建时间?
我可以更快地创建位图图,但是在源文件中排列图像要困难得多(直到VS2010).
为了记录,我不是在谈论装饰性的ASCII艺术.
这是我最近为我的代码创建的图表的示例,我可能在MS Paint的一半时间内构建了该图表.
Scenario A:
v
(U)____________(N)_______<--(P) Legend:
' / | J = ...
' / | P = ...
' /d | U = ...
' / | v = ...
' / | d = ...
'/ | N = ...
(J) |
| |
|___________________|
Run Code Online (Sandbox Code Playgroud) 在MSVC 2005上,我有以下代码.
std::ostringstream stream("initial string ");
stream << 5;
std::cout << stream.str();
Run Code Online (Sandbox Code Playgroud)
我的期望是:
initial string 5
Run Code Online (Sandbox Code Playgroud)
我得到的是:
5nitial string
Run Code Online (Sandbox Code Playgroud)
使用字符串初始化流,我希望流将其位置移动到初始字符串的末尾.显然,STL不同意我的观点(不是第一次).
这种行为的目的是什么?这个用例对任何事情都有用吗?还有,有办法将流位置推进到初始字符串的末尾吗?
我试图解决一个decltype会大大简化问题的问题,但是我遇到了一个使用decltypeon *this并添加const限定符的问题.下面的示例代码演示了该问题.
#include <iostream>
struct Foo
{
void bar()
{
static_cast<const decltype(*this)&>(*this).bar();
}
void bar() const
{
std::cout << "bar" << std::endl;
}
};
int main(int argc, char* argv[])
{
Foo f;
f.bar(); // calls non-const method
return 0;
}
Run Code Online (Sandbox Code Playgroud)
代码在MSVC2010中编译,但执行会递归,直到发生堆栈溢出.
Ideone报告编译器错误
prog.cpp: In member function 'void Foo::bar()':
prog.cpp:7:38: error: 'const' qualifiers cannot be applied to 'Foo&'
Run Code Online (Sandbox Code Playgroud)
如果我换行
static_cast<const decltype(*this)&>(*this).bar();
Run Code Online (Sandbox Code Playgroud)
至
static_cast<const Foo&>(*this).bar();
Run Code Online (Sandbox Code Playgroud)
它按预期工作.
我是否滥用或误解了decltype?
我正在尝试找到一种算法来计算2个矩形之间的交集,这些矩形不一定是轴对齐的,并返回结果的交集.
此问题描述了查找交叉点是否存在.如果它存在,我想得到交叉点的结果形状.
我对该算法的应用将使用一个轴对齐的矩形和一个不一定是轴对齐的矩形,但一般算法将是更可取的.
谢谢!
假设我有一堂课
class Foo
{
public:
~Foo() { delete &_bar; }
void SetBar(const Bar& bar)
{
_bar = bar;
}
const Bar& GetBar() { return _bar; }
private:
Bar& _bar;
}
Run Code Online (Sandbox Code Playgroud)
我对这个类的用法如下(假设Bar有一个工作副本构造函数)
Foo f;
f.SetBar(*(new Bar));
const Bar* bar = &(f.GetBar());
f.SetBar(*(new Bar(bar)));
delete bar;
Run Code Online (Sandbox Code Playgroud)
我有一个类似于这种情况(代码我没写)和当我在"删除栏"上设置的断点调试时 我看到了
&f._bar == bar
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么&f._bar和bar指向相同的内存块,如果我省略"删除栏",从内存管理的角度来看,有什么后果?
非常感谢!
Win32 API有一个PostMessage函数,它将消息发布到GUI消息队列的末尾,以便稍后从GUI线程处理,而不是SendMessage发送和处理与调用线程同步的消息.
有PostMessage功能的Qt解决方案吗?同事建议Qt的服务器/套接字实现可以提供它; 这是一个合理的方法吗?
在MSVC2005中,以下代码无法为我编译:
std::vector<CMenu> vec(10);
Run Code Online (Sandbox Code Playgroud)
CMenu是一个MFC菜单对象(如上下文菜单).通过一些测试,我了解到CMenu没有公共拷贝构造函数.
为了做我想做的事,我需要使用动态数组.
CMenu* menus = new CMenu[10];
// ...
delete [] menus;
Run Code Online (Sandbox Code Playgroud)
当然,现在我已经失去了使用STL容器的所有好处.
我还有其他选择吗?