假设我有一个看起来像这样的类,如果它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
我有一个嵌套的地图,看起来像这样:
{"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)
从文档中我发现我需要像邮路一样的东西,但我无法绕过它.
我有一个看起来像这样的类:
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)
我知道我必须超载<<操作员,我是否还要超载,操作员?
实际方法怎么样?
我想在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时间不会改变.是否有某种记忆正在进行?