请考虑以下代码:
class Widget{};
template<typename T>
T &&foo2(T &&t){
return std::forward<T>( t );
}
/// Return 1st element
template<typename T>
typename std::tuple_element<0, typename std::decay<T>::type >::type &&foo(T &&t){
return std::forward< typename std::tuple_element<0, typename std::decay<T>::type >::type >
( std::get<0>(t) );
}
Widget w;
auto list = std::make_tuple(
w,
Widget()
);
int main()
{
auto &l = foo(list ); // This is NOT work
//auto &l2 = foo2( std::get<0>(list) ); // This one works.
}
Run Code Online (Sandbox Code Playgroud)
http://coliru.stacked-crooked.com/a/4d3b74ca6f043e45
当我尝试编译时,我收到以下错误:
error: invalid initialization of non-const reference of …Run Code Online (Sandbox Code Playgroud) 我有以下格式的数据:
gen = function () sample.int(10, replace = TRUE)
x = data.frame(A = gen(), C = gen(), G = gen(), T = gen())
Run Code Online (Sandbox Code Playgroud)
我现在想要在每行中附加行中所有元素的总和(我的实际函数更复杂,但sum说明了问题).
没有dplyr,我会写
cbind(x, Sum = apply(x, 1, sum))
Run Code Online (Sandbox Code Playgroud)
导致:
A C G T Sum
1 3 1 6 9 19
2 3 4 3 3 13
3 3 1 10 5 19
4 7 2 1 6 16
…
Run Code Online (Sandbox Code Playgroud)
但用dplyr做这件事似乎很难.
我试过了
x %>% rowwise() %>% mutate(Sum = sum(A : T))
Run Code Online (Sandbox Code Playgroud)
但结果不是每一行的总和,这是意想不到的东西,(对我来说)莫名其妙.
我也试过了
x %>% rowwise() …Run Code Online (Sandbox Code Playgroud) 我正在尝试学习Python,所以我想首先尝试查询IMDB以对照IMDB检查我的电影收藏;一切顺利
我所坚持的是如何处理名称中的特殊字符,以及如何将名称编码为URL会尊重的名称。
例如我有电影 Bru?no
如果使用urllib.parse.quoteget 对字符串进行编码 - Bru%CC%88no 这意味着当我使用OMDBAPI查询IMDB时,找不到电影。如果我通过OMDBAPI网站进行搜索,则它们会将名称编码为,Br%C3%BCno并且此搜索有效。
我假设编码使用的是其他标准,但是我无法解决需要做的事情
我正在创建一个博客,blogdown在其中比较来自 R 的代码和来自 Stata 的代码。我想展示这两个代码,以便用户可以比较它在 R 和 Stata 中是如何完成的。但是,将两个或更多块放在一行中(R 的代码,Stata + 输出的代码)会使阅读变得非常不舒服。
我想到了几个布局来包含几个块,但我不知道它们是否已经实现,或者是否有可能这样做。
有一个按钮来显示/隐藏块(每个块一个按钮)
一种想法是:
此人与这个人成功地折叠在blogdown他们的代码块,但显然它在默认情况下隐藏或显示每个块。默认情况下如何只隐藏一些块?是否有隐藏或显示代码块的选项(如选项eval,echo...)blogdown?
带有“标签”的块
这部分的标题不言自明:是否可以在一个块中包含选项卡,以便我们可以从一种代码切换到另一种代码(就像 Web 浏览器中的选项卡一样)?
并排显示两个块
在某些blogdown主题中(也许是所有主题,我不知道),宽度相当减少,并且侧面有一些未使用的空间。因此,是否可以在文章的某些部分增加宽度并并排显示两个块?
知道这些布局之一是否可以实现blogdown吗?
使用pip安装时,pip install sqlalchemy一切正常。
使用诗歌安装时出现错误
? backend poetry add sqlalchemy
Using version ^1.4.23 for SQLAlchemy
Updating dependencies
Resolving dependencies... (0.1s)
AttributeError
'EmptyConstraint' object has no attribute 'allows'
at ~/.poetry/lib/poetry/_vendor/py3.8/poetry/core/version/markers.py:291 in validate
287?
288? if self._name not in environment:
289? return True
290?
? 291? return self._constraint.allows(self._parser(environment[self._name]))
292?
293? def without_extras(self): # type: () -> MarkerTypes
294? return self.exclude("extra")
295?
? backend
Run Code Online (Sandbox Code Playgroud) 下面的代码在R(3.0.2中执行但是我假设它与其他版本类似)时可重现的段错误:
ns = new.env(parent = .BaseNamespaceEnv)
local(f <- function () 42, envir = ns)
x = list2env(as.list(ns), parent = as.environment(2))
parent.env(.GlobalEnv) = x
detach()
Run Code Online (Sandbox Code Playgroud)
是的,我知道文件parent.env说的
替换功能
parent.env<-非常危险,因为它可以用于以违反内部C代码假设的方式破坏性地改变环境.它可能会在不久的将来被删除.
这就是我似乎遇到的问题.但是,我想了解为什么这种行为是这样的,以及如何避免它.
以下简化代码并不会有这样的问题:
x = new.env(parent = as.environment(2))
local(f <- function () 42, envir = x)
parent.env(.GlobalEnv) = x
detach()
Run Code Online (Sandbox Code Playgroud)
...所以它似乎有所不同,它x包含parent.env一个不同(未连接)环境的函数.
同样,使用attach而parent.env<-不是导致崩溃.(那么为什么不简单地使用attach?因为在我的代码中,.GlobalEnv部分是一个可能引用不同环境的变量.)
崩溃转储告诉我段错误发生在do_detach(envir.c)中.该代码包含以下行:
isSpecial = IS_USER_DATABASE(s);
if(isSpecial) { …Run Code Online (Sandbox Code Playgroud) 首先让我说我已经阅读了关于这个主题的大部分SO和其他主题.
我理解的方式,std :: vector 将在推回新项目时重新分配内存,这是我的情况,除非我保留了足够的空间(这不是我的情况).
我所拥有的是std :: shared_ptr的向量,并且该向量包含唯一对象(或者更准确地说,指向向量中的唯一对象).
通过指针处理这些对象是围绕Factory&Handler类进行的,但是可以从包装类外部访问指向对象的指针,并且可以修改成员值.任何时候都不会发生删除.
如果我正确理解先前关于std :: vector和线程安全的SO问题中提出的问题,添加(push_back)新对象可能会使先前的指针无效,因为向量内部可能会重新分配内存并复制所有内容,这当然是一场灾难为了我.
我的意图是从该向量读取,通常通过指针修改对象,并从异步运行的线程向向量添加新项.
所以,
如果它具有任何重要性,那么以上所有内容都是在linux(debian jessie)上使用gcc-4.8并启用了c ++ 11.
我愿意使用微创库.
提前谢谢了 :-)
编辑:这似乎是Typescript中的一个已知问题.一个解决方案一旦实施,但由于无法解决的性能问题而最终被解决.
这种情况通常出现在我们的代码库中:
function consumer<T>(valueProducer: () => T) {
let value = valueProducer();
console.log(value);
}
class Foo {
private _value: number = 100;
getValue(): number {
return this._value;
}
constructor() {
// Oops! Inside consumer(), getValue will be called with wrong this
consumer(this.getValue);
}
}
Run Code Online (Sandbox Code Playgroud)
Typescript中的解决方案是这样的:
consumer( () => this.getValue() ); // capture correct this
Run Code Online (Sandbox Code Playgroud)
或这个:
consumer( this.getValue.bind(this) ); // bind to correct this
Run Code Online (Sandbox Code Playgroud)
这个问题对于Typescript/Javascript程序员来说可能是显而易见的,但是我们的团队正在将大量的C#移植到Typescript,而在C#中这不是错误(即C#中传递的方法自动绑定到对象实例).所以我希望类型系统能够捕获此错误,如果可能的话.
显式键入this回调使用的第一个明显的步骤:
function consumer<T>(valueProducer: (this: void) => T) {
let value …Run Code Online (Sandbox Code Playgroud) 我有一节课:
struct Foo {
vector<float> data;
};
Run Code Online (Sandbox Code Playgroud)
我有一个模板化的函数,需要一个Foo&:
template<typename T>
void f(T& arg) {
using ftype = float *; // <-- would like this to be const float * if T is const
ftype ptr = &arg.data[0];
// ... do stuff with ptr ...
}
Run Code Online (Sandbox Code Playgroud)
const float *如果iff T是const,我该如何制作ptr ?我知道add_const和is_const,但没有看到如何在这里使用它们.(我真正的结构更复杂,我没有直接访问其内部;它实际上是一个OpenCV cv::Mat.)如果需要,我可以使用最新的(C++ 14/C++ 17)功能.
我会像这样使用它:
Foo foo1 = Foo();
f(foo1); // modifiable in f
const Foo cfoo = Foo();
f(cfoo); // const, should not be …Run Code Online (Sandbox Code Playgroud) c++ ×4
c++11 ×3
r ×3
python ×2
templates ×2
blogdown ×1
dplyr ×1
environment ×1
omdbapi ×1
python-3.x ×1
typescript ×1
urlencode ×1
vector ×1