我想知道在C++中是否有可能以字符串形式检索类的名称而无需将其硬编码为变量或getter.我知道这些信息实际上并没有在运行时使用,因此它不可用,但有没有可用于创建此功能的宏?
编辑:可能有助于注意我实际上是在尝试检索派生类的名称,而我正在使用Visual C++ 2008 Express Edition.
我想知道是否可以根据分配给它的变量类型来更改函数的返回类型.这是我的意思的一个简单例子.
我想创建一个从字符串中解析int,bool或float变量的函数.例如...
Int value = parse("37");
Float value = parse("3.14");
Bool value = parse("true");
Run Code Online (Sandbox Code Playgroud)
我理解如果我将此函数设为模板,则必须从参数列表中确定变量类型,该列表始终是一个字符串.用c ++还有其他方法吗?
嘿,我想知道如何将焦点设置为Mobile Safari中的文本框.
我试过document.myForm.myTextArea.focus()
在常规Safari中工作,但它似乎在Mobile Safari中不起作用.
为了澄清,我想在用户加载页面时立即将焦点设置到文本框,并弹出iPhone键盘.
我在界面构建器和可可中的颜色有些麻烦.
我在photoshop中构建我的界面,当我从photoshop复制RGB值并在界面构建器中或通过代码设置我的UI元素时,颜色甚至都不接近.我已经搞砸了在photoshop中设置颜色配置文件,但似乎无法找到一个有所作为的(也许我只是使用它们错了)
任何人都可以帮助设置Photoshop如何更准确地描绘可可使用的颜色?这就是我的意思:
我在界面构建器中创建了一个框,并将其RGB设置为50,100,150,然后截取它并将其粘贴到photoshop中.然后我在photoshop中创建了另一个框,并将其rgb值设置为50,100,150.如果我对IB颜色进行采样,则它的RGB出现在63,120,163.
我正在使用FSEvents来监视将某些大文件复制到其中的文件目录.目前,FSEvents似乎在我开始复制文件时发送通知,并在完成复制文件时再次发送通知.当它是一个较小的文件时,我只得到一个事件.有没有办法检查文件是否正在被复制?
这是雪豹的顺便说一句.
我想知道你们是否知道c ++关联映射容器类型,我可以执行多个键查找.地图需要有恒定的时间查找,但我不在乎它是有序还是无序.它只需要快速.
例如,我想在地图中存储一堆std :: vector对象,其中包含整数和void*作为查找键.int和void*都必须匹配我要检索的向量.有这样的事情吗?或者我将不得不自己动手.如果有,有什么建议吗?我一直在尝试将boost :: unordered_map存储在另一个boost :: unordered_map中,但我还没有使用此方法取得任何成功.如果没有更简单的方法,也许我会继续使用这种方法.谢谢!
嘿,我在装载Freetype 2库的openGL中绘制文本时遇到了一个奇怪的问题.这是我所看到的截图.
例如http://img203.imageshack.us/img203/3316/freetypeweird.png
这是我的代码位,用于加载和呈现我的文本.
class Font
{
Font(const String& filename)
{
if (FT_New_Face(Font::ftLibrary, "arial.ttf", 0, &mFace)) {
cout << "UH OH!" << endl;
}
FT_Set_Char_Size(mFace, 16 * 64, 16 * 64, 72, 72);
}
Glyph* GetGlyph(const unsigned char ch)
{
if(FT_Load_Char(mFace, ch, FT_LOAD_RENDER))
cout << "OUCH" << endl;
FT_Glyph glyph;
if(FT_Get_Glyph( mFace->glyph, &glyph ))
cout << "OUCH" << endl;
FT_BitmapGlyph bitmap_glyph = (FT_BitmapGlyph)glyph;
Glyph* thisGlyph = new Glyph;
thisGlyph->buffer = bitmap_glyph->bitmap.buffer;
thisGlyph->width = bitmap_glyph->bitmap.width;
thisGlyph->height = bitmap_glyph->bitmap.rows;
return thisGlyph;
} …
Run Code Online (Sandbox Code Playgroud) 我想知道是否有人知道为什么下面的示例没有编译给出过载函数错误的模糊调用.如果我用强类型仿函数签名替换auto,那么它就能够正确地区分两个方法重载.
我注意到当不使用std :: function作为我的重载参数时不会发生同样的问题.如果我的重载只是一个简单的float和int,那么即使使用auto关键字来定义我的输入参数,编译器也可以正确区分这两个重载.我在VisualStudio 2012中编译它.这可能只是VS编译器中的一个错误吗?我现在无法访问带有GCC或Clang的机器,但有人知道这是否会在那里编译?
编译错误:对重载函数的模糊调用
class AmbiguousOverload
{
public:
static void OverloadedMethod(std::function<int()>) {}
static void OverloadedMethod(std::function<float()>) {}
};
int _tmain(int argc, _TCHAR* argv[])
{
auto func1 = []() -> float {
return 0.5f;
};
auto func2 = []() -> int {
return 12;
};
AmbiguousOverload::OverloadedMethod(func1);
AmbiguousOverload::OverloadedMethod(func2);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译
class AmbiguousOverload
{
public:
static void OverloadedMethod(std::function<int()>) {}
static void OverloadedMethod(std::function<float()>) {}
};
int _tmain(int argc, _TCHAR* argv[])
{
std::function<float()> func1 = []() -> float {
return 0.5f;
}; …
Run Code Online (Sandbox Code Playgroud) 嘿,我有一个快速的自动回复问题.我基本上了解它是如何工作的,但我想知道以下是否会造成内存泄漏.
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NSString* string = [[[NSString alloc] init] autorelease];
[[string retain] autorelease];
[pool drain];
Run Code Online (Sandbox Code Playgroud)
字符串是否会发送两条释放消息?
嘿,所以如果我有一个Base类和2个派生类...
class Base
{
virtual void Output()
{
cout << "OUTPUTTING A BASE OBJECT" << endl;
}
};
class Derived : public Base
{
void Ouput()
{
cout << "OUTPUTTING A DERIVED" << endl;
}
};
class OtherDerived : public Base
{
};
Run Code Online (Sandbox Code Playgroud)
据我了解,如果我尝试从OtherDerived调用Output,它将失败.有没有办法覆盖Base的某些派生版本的输出而不是其他的?
c++ ×6
macos ×2
c++11 ×1
class ×1
cocoa ×1
colors ×1
containers ×1
dictionary ×1
filesystems ×1
fonts ×1
freetype ×1
fsevents ×1
iphone ×1
macros ×1
mobile ×1
objective-c ×1
opengl ×1
overloading ×1
photoshop ×1
return ×1
std ×1
stdmap ×1
templates ×1
text ×1
virtual ×1