小编fuj*_*uji的帖子

c ++模板类根据类型通过ref传递构造函数

假设我有一个看起来像这样的类,如果它T是一个简单的类型,double或者通过引用,如果T更复杂,则应该通过值构造.

到目前为止我的代码看起来像这样:

template<class T>
class Val {
  public:
    Val() = default;
    Val(double v) : _v(v) {}

    template<typename U = T>
    Val(const &T v,
        typename std::enable_if<!std::is_same<U,double>::value, bool>::type = 0)
    : _v(v) {}
  private:
    T _v;
};
Run Code Online (Sandbox Code Playgroud)

哪个有效,但感觉非常粗略,因为在构造函数中引入了一个额外的参数.这个问题有更好的解决方案吗?这似乎更适合过载或模板专业化解决方案?对于所有简单类型(,......)int,这通常可以解决吗?floatdouble

c++ templates metaprogramming parameter-passing sfinae

2
推荐指数
1
解决办法
165
查看次数

在clojure中转换嵌套映射

我有一个嵌套的地图,看起来像这样:

{"a" {:points 2} "b" {:points 7} "c" {:points 1} "d" {:points 3}}
Run Code Online (Sandbox Code Playgroud)

我想把它变成一个地图序列,以便排序(排序)并在之后打印.

({:name "a" :points 2}
 {:name "b" :points 7}
 {:name "c" :points 1}
 {:name "d" :points 3})
Run Code Online (Sandbox Code Playgroud)

从文档中我发现我需要像邮路一样的东西,但我无法绕过它.

traversal clojure map

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

重载operator <<来改变成员变量

我有一个看起来像这样的类:

class A {
  public:
    A() {};
    A& operator<< (A& a, unsigned int i);

  private:
    vector<int> abc;
}
Run Code Online (Sandbox Code Playgroud)

我想提供abc使用运算符添加对象的功能:

A a();
a << 3,4,5; // should do the same as several calls of abc.push_back(i)
Run Code Online (Sandbox Code Playgroud)

我知道我必须超载<<操作员,我是否还要超载,操作员?

实际方法怎么样?

c++ class operator-keyword

0
推荐指数
2
解决办法
183
查看次数

后端在haskell中服务当前时间(在json中)

我想在haskell中编写一个简单的web服务器,它提供当前时间.时间应以json格式返回.

这是我到目前为止:

{-# LANGUAGE DeriveDataTypeable #-}

import Happstack.Server
import Text.JSON.Generic
import Data.Time
import System.IO.Unsafe

data TimeStr = TimeStr {time :: String} deriving (Data, Typeable)

main = simpleHTTP nullConf $ ok $ toResponse $ encodeJSON (TimeStr $ show (unsafePerformIO getCurrentTime)) 
Run Code Online (Sandbox Code Playgroud)

我知道unsafePerformIO应该避免,但我还没有找到更好的解决方案.也许这就是问题所在?我对monad有一个非常基本的了解.

结果如下:

{"time":"2014-10-16 16:11:38.834251 UTC"}
Run Code Online (Sandbox Code Playgroud)

问题是,当我刷新localhost:8000时间不会改变.是否有某种记忆正在进行?

haskell happstack

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