我正在快速使用C++ 0x,并使用g ++ 4.6进行测试
我只是尝试了下面的代码,认为它会工作,但它不会编译.我收到错误:
incompatible types in assignment of ‘std::initializer_list<const int>’ to ‘const int [2]’
struct Foo
{
int const data[2];
Foo(std::initializer_list<int const>& ini)
: data(ini)
{}
};
Foo f = {1,3};
Run Code Online (Sandbox Code Playgroud) 我需要处理许多目录,确定它们中的哪些文件是符号链接,以及它们链接到哪些文件.这听起来很简单,但我无法控制文件名中是否存在控件或其他字符,我需要一个强大的解决方案.
因此,给定一个任意名称的文件,当链接目标还可以包含任意内容时,如何安全地确定它链接的内容?
既然C++ 0x几乎就在这里,我一直在试验它,特别是使用nullptr.如果需要使用它,我无法弄清楚应该包含哪些标准头文件.
任何帮助表示赞赏.
我通常会声明我的类和模板,然后在(在相同的头文件中)之后定义它们的方法.我发现这种方式更容易阅读.好吧,我遇到过一个案例,我无法弄清楚在一个类外定义中使用的工作类型签名.这是我正在做的一个简化示例,它说明了问题:
template <class T>
struct Foo
{
Foo(T a, T b);
template
< class Iterator
, enable_if< is_iterator<Iterator> >
>
Foo
( Iterator first
, Iterator last
);
};
template <class T>
Foo<T>::Foo(T a, T b)
{ ... }
template <class T>
template
< class U
, WHAT_GOES_HERE?
>
Foo<T>::Foo(U f, U l)
{ ... }
Run Code Online (Sandbox Code Playgroud)
我在WHAT_GOES_HERE插槽中尝试了很多东西来尝试获得匹配的签名,但我一直都在失败.我需要enable_if来区分一个传入两个T类型对象的情况,以及一个传递一对迭代器的情况.如果模板化的构造函数在主模板中定义,代码工作正常,这是代码当前的工作方式,但我更倾向于将定义移到声明之外.
编辑:我应该提一下,我不能在定义中重新使用enable_if <...>,因为enable_if <...>为其类型分配了一个默认值,在非定义中你不能这样做也是一个宣言.
我最近一直在更新我的算法知识,并一直在阅读后缀数组。我读过的每篇文章都将它们定义为单个搜索字符串上的后缀数组,但有些文章提到了将其概括为整个搜索字符串列表的“微不足道”,但我不知道如何。
假设我正在尝试对单词列表执行简单的子字符串搜索,并希望返回与给定子字符串匹配的单词列表。天真的方法似乎是在我的列表中的单词之间插入字典结束字符“$”,将它们连接在一起,然后从结果中生成后缀树。但这似乎会产生大量不相关的条目。如果我创建一个 'banana$muffin' 的源字符串,那么我最终会为我永远不会使用的 'ana$muffin' 生成后缀。
我很感激有关如何正确执行此操作的任何提示,或者更好的是,指向一些处理这种情况的算法文本的指针。
我以前编写过任意数量的perl模块,以及多个独立的perl程序,但我以前从未发布过多文件perl程序.
我有一个几乎处于测试阶段的perl程序,并将在开源时发布.它需要大量的数据文件,以及一些外部perl模块 - 我自己写的一些,以及CPAN的一些 - 我必须捆绑它以确保有人可以只下载我的程序并安装它而不用担心寻找模糊的模块.
因此,我觉得我需要编写一个安装程序将所有文件复制到标准位置,以便用户可以轻松安装所有内容.麻烦的是,我不知道标准做法是什么.我发现了许多关于perl模块标准的教程,但没有关于perl程序标准的教程.
对于perl程序,有没有人对标准路径,安装过程等有任何指示?程序是多平台的,这将变得复杂.我一直在Linux上测试它,但它的设计在Windows中也能很好地工作.