小编lib*_*ako的帖子

编译器支持STL容器中的有状态分配器

新的C++ 11标准要求STL实现支持容器中的有状态分配器.主STL实现(Visual Studio 2008,2010,libstdc ++)现在是否符合此要求?我在MSDN或libstdc ++文档中没有发现任何相关信息.

c++ containers stl allocator c++11

11
推荐指数
1
解决办法
2184
查看次数

使用SVG进行2D渲染和放大

我的任务是开发一种算法,将不同类型的曲线拟合到二维空间中的给定点序列上.

为了能够测试我的算法,我选择了SVG来显示结果.我有几个问题.

由于我的算法可能有非常不同的输入和输出,因此我必须能够放大查看生成的SVG文件!

但是SVG中的路径只能以一定的宽度显示.如果我放大,那么路径的宽度会变宽.我希望宽度在所有缩放级别为例如1像素.这有解决方案吗?

另外:SVG可以显示点吗?是的,简单,原始点.我发现它不能.

谢谢

svg point path zooming

7
推荐指数
1
解决办法
3420
查看次数

为什么在源文件的开头指定模块名称是必须的?

GHC坚持认为模块名称必须等于文件名.但如果它们是相同的,那么为什么Haskell编译器需要两者?对我来说似乎多余.这只是语言设计错误吗?

除了不方便之外,它还引发了一个问题,即如果我想使用2个意外具有相同顶级模块名称的库,那么我就不能简单地通过重命名其中一个文件夹来消除歧义.这个问题的惯用解决方案是什么?

haskell module file

5
推荐指数
2
解决办法
711
查看次数

Rust标准库闭包参数:运行时还是编译时?

我正在浏览Rust标准库.我认为当一个闭包作为参数传递给一个函数时,它会在运行时传递.例如,来自Iterator特征:

fn filter<'r>(self, predicate: 'r |&A| -> bool) -> Filter<'r, A, Self>
Run Code Online (Sandbox Code Playgroud)

'predicate'这里不是通用参数,而是普通的运行时参数.但这不意味着编译器无法内联调用'谓词'吗?这是一个深思熟虑的设计选择[例如为了避免代码膨胀]或者Rust语言没有提供在编译时传递闭包的方法吗?

parameters closures inline std rust

3
推荐指数
1
解决办法
472
查看次数

Const Monoid的应用实现

instance Monoid m => Applicative (Const m) where
    pure _ = Const mempty
    Const f <*> Const v = Const (f `mappend` v)
Run Code Online (Sandbox Code Playgroud)

我不明白怎样才能定义<*>类型检查.

在左侧f受到<*>Applicative定义中的签名的约束

class Functor f => Applicative f where
    pure :: a -> f a
    (<*>) :: f (a -> b) -> f a -> f b
Run Code Online (Sandbox Code Playgroud)

将名称更改为当前情况后:

    (<*>) :: c (m -> b) -> c m -> c b
Run Code Online (Sandbox Code Playgroud)

=> f :: m -> *.

在左侧f是[first]参数mappend …

haskell applicative monoids

3
推荐指数
2
解决办法
182
查看次数

()作为空约束

怎么能代表空约束呢?

对于以下文件

{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE KindSignatures #-}

import Data.Kind(Type, Constraint)

type Empty = (() :: Type -> Constraint)

main :: IO ()
main = return ()
Run Code Online (Sandbox Code Playgroud)

ghc 8.2.2答案

constraint.hs:6:15: error:
    • Expected kind ‘* -> Constraint’, but ‘()’ has kind ‘*’
    • In the type ‘(() :: Type -> Constraint)’
      In the type declaration for ‘Empty’
  |
6 | type Empty = (() :: Type -> Constraint)
  |  
Run Code Online (Sandbox Code Playgroud)

我想念什么?

我知道以下解决方案

{-# LANGUAGE FlexibleInstances #-}

class Empty x …
Run Code Online (Sandbox Code Playgroud)

haskell constraint-kinds

3
推荐指数
1
解决办法
187
查看次数

为什么Rust官方库中没有单链表?

Rust官方库包含双链表.但没有单独的联系.为什么?

list rust

0
推荐指数
1
解决办法
411
查看次数