我想在异常处理程序中执行的代码本身可能会抛出异常.
以下结构是否合法C++?如果是的话,有任何缺点吗?
try
{
// ...
}
catch (const E&)
{
try
{
// ...
}
catch (const F&)
{
}
}
Run Code Online (Sandbox Code Playgroud) 有没有办法在一个HTML文件中包含多个不同的HTML页面?例如,假设我有一个包含两个页面的网站:
Page 1 : click here for page 2
Run Code Online (Sandbox Code Playgroud)
和
Page 2 : click here for page 1
Run Code Online (Sandbox Code Playgroud)
我是否可以创建一个HTML文件,为两个页面嵌入简单的静态HTML,但一次只显示一个?我的实际页面当然更复杂的图像,表格和javascript来扩展表格行.我宁愿避免太多的脚本代码.谢谢!
我在博客上找到了以下模板:
template <typename T, size_t N>
struct array_info<T[N]>
{
typedef T type;
enum { size = N };
};
Run Code Online (Sandbox Code Playgroud)
这是一个优雅的替代品sizeof(a) / sizeof(a[0]).
获取数组大小的常用构造肯定应该在库中的某个位置.我不知道一个.任何人都可以告诉我这个功能是在某个地方和/或Boost的标准库中吗?优选地,以易于使用和轻质的形式.
可能重复:
T &&在C++ 0x中意味着什么?
在我读到这个答案之前,我从未见过双安瓿.
有问题的代码段是这样的:
template <typename T>
T& as_lvalue(T&& x)
{
return x;
}
Run Code Online (Sandbox Code Playgroud)
有什么作用&&?可以传递什么类型的参数as_lvalue()
我正在使用一些具有大量条件宏的第三方代码.Visual Studio非常擅长检测非活动代码,即包含在#if...... #endif中的代码,它不会被编译,我可以单独手动折叠它们.
我想自动隐藏非活动块 - 所有这些.这可能吗?
编辑:VS2012可以实现吗?可能是升级的原因.
code-folding visual-studio-2010 visual-studio visual-studio-2012
我有许多变量与工程规范文档中的元素命名相同,因此名称的字符串版本也很有用.
我发现自己经常使用像这样的宏:
#define MACRO(a) a, #a
Run Code Online (Sandbox Code Playgroud)
典型用法是:
void someFunction(int a, const char *name);
someFunction(MACRO(meaningfully_named_variable));
Run Code Online (Sandbox Code Playgroud)
我的问题有三个:
编辑 我应该说上面是一个最小的例子.该函数可能具有其他参数,并且命名实体可能是数据成员,甚至可能是函数本身.
我正在为C++考虑的另一个扩展是一个NamedRef可以接收宏内容的类.
template <typename T>
struct NamedRef
{
NamedRef(T *t, const char *name) : t(t), name(name) { }
T *t;
const char *name;
};
template <typename T>
NamedRef<T> namedRef(T &t, const char *name)
{
return NamedRef<T>(&t, name);
}
#define WITH_NAME(a) a, #a
// more sophisticated usage example
void otherFunction(double, NamedRef<int>, bool);
otherFunction(0.0, namedRef(object.WITH_NAME(meaningful_member_name)), false);
Run Code Online (Sandbox Code Playgroud) 我经常遇到API,允许用户获取和设置控制模块操作的各种参数.我现在发现自己正在考虑编写另一个属性API但不想重新发明轮子.
以下是典型的基本客户端代码:
setInt("bitrate", 1000);
setEnum("mode", MODE_FAST);
setStr("output file", "music.mp3");
Run Code Online (Sandbox Code Playgroud)
通常可以设置许多参数,并且这些属性集通常在不断发展中.
有些API比其他API更智能,更高级的功能是:
除了上面示例代码中的C风格访问器之外,我还遇到了以下框架:
IPersistPropertyBag我很想找到一个精心设计的公共图书馆,为上述所有人提供框架,但到目前为止已经画了一个空白.我知道Boost.PropertyTree,但它只是一个骨架.我应该注意其他可移植属性API框架吗?
我有一个脚本 - 一个线性的命令列表 - 需要很长时间才能顺序运行.我想创建一个实用程序脚本(Perl,Bash或其他可用于Cygwin),它可以从任何线性脚本读取命令并将它们分配给可配置数量的并行工作程序.
如果myscript是的话
command1
command2
command3
Run Code Online (Sandbox Code Playgroud)
我可以跑:
threadpool -n 2 myscript
Run Code Online (Sandbox Code Playgroud)
两个线程将被创建,一个有开始command1和其他command2.无论哪个线程首先完成其第一个作业,都会运行command3.
在深入Perl之前(已经很长时间了)我想我应该问专家这样的事情是否已经存在.我确信应该有这样的东西,因为它对于利用多CPU机器和并行网络传输(wget或scp)都非常有用.我想我不知道正确的搜索条件.谢谢!
我想创建一个本地应用程序,它具有基于浏览器的UI而不是基于MFC/Qt /等的独立GUI.如果我不想在本地计算机上运行Web服务器,我该如何实现动态我应用程序的一部分?浏览器可以指向机器上的本地脚本,可执行文件或库吗?我可以直接使用本地数据库吗>这种方法存在哪些缺陷?
我有一个这样的课:
struct Thing
{
unsigned index;
// more data members
};
Run Code Online (Sandbox Code Playgroud)
我用a std::map<Thing>来包含我的Things.调用代码看起来像这样:
Thing myThing(/*...*/);
std::map<Thing> things;
things[myThing.index] = myThing;
// ...
Thing &thing3 = things[3];
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种方法可以Thing::index直接使用而无需隐式地将其复制到其中pair::first.
我想我需要提供某种Thing比较运算符,但没关系. std::set可能会工作,但我需要一个完整的Thing对象作为关键:
std::set<Thing> things;
Thing &thing3 = *things.find(Thing(3));
Run Code Online (Sandbox Code Playgroud)
除了重构成Thing一个std::pair,我可以用STL做得更好吗?