小编Gui*_*cot的帖子

Node.js"写完后"错误

从一个基本的节点应用程序开始,我无法弄清楚如何击败这个"写后结束"错误,即使在几个站点上建议的回调.

index.js:

var server = require("./server");
var router = require("./router");
var requestHandlers = require("./requestHandlers");

var handle = {}
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;

server.start(router.route, handle);
Run Code Online (Sandbox Code Playgroud)

server.js:

var http = require("http");
var url = require("url");

function start(route, handle) {
  function onRequest(request, response) {
    var postData ="";
    var pathname = url.parse(request.url).pathname;
    console.log("Request for " + pathname + " received.");

    route(handle, pathname, response);
   }

  http.createServer(onRequest).listen(8888);
  console.log("Server has started.");
}

exports.start = start;
Run Code Online (Sandbox Code Playgroud)

router.js:

function route(handle, pathname, response) {
  console.log("About …
Run Code Online (Sandbox Code Playgroud)

javascript node.js node.js-stream

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

为什么我收到编译错误"使用已删除的函数'std :: unique_ptr ..."

我的消息收到了很大的编译错误

c:\mingw\include\c++\6.1.0\bits\predefined_ops.h:123:18: error: use of deleted function 'std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_ptr<_Tp, _Dp>&) [with _Tp = Deduction; _Dp = std::default_delete<Deduction>]'
         { return bool(_M_comp(*__it1, *__it2)); }
Run Code Online (Sandbox Code Playgroud)

当我将自定义比较器传递给STL set_difference函数时.

我的代码:

struct Value{
   std::string ded_code;
   float amount;
   Value(std::string code, float amt):ded_code(code), amount(amt){}
};

struct Deduction{
  std::string p_number;
  std::vector<std::unique_ptr<Value>> values;
  Deduction(string pnum, string code, float amt):p_number(pnum){ 
    auto val = std::make_unique<Value>(code, amt);
    values.emplace_back(move(val));
  }
};

class compute{
public:
   vector<unique_ptr<Deduction>> deductions;
   void fillDeductions(){
    // fill deductions
    ...
   }

};

class CompareDiff{
public:
  bool operator()(unique_ptr<Deduction>& ded1, unique_ptr<Deductions>& ded2){ …
Run Code Online (Sandbox Code Playgroud)

c++

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

使用 Shopify Liquid 模板访问元字段中的 JSON 块

我想知道是否有人知道我是否可以在 Liquid 中访问 JSON,例如下面的示例。

我已经为带有名称空间的供应商页面创建了一个元字段suppliers_details,带有键suppliers和值:

{
  name: "Supplier Name One",
  address: "Supplier Address One"
},
{
  name: "Supplier Name Two",
  address: "Supplier Address Two"
}
Run Code Online (Sandbox Code Playgroud)

在模板中,我有:

{% assign suppliers = page.metafields.suppliers.suppliers %}
{% for supplier in suppliers %}
  <p>{{ supplier.name }}</p>
  <p>{{ supplier.address }}</p>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为我无法将数据更改为模板可以用来迭代的格式,有没有办法做到这一点?

干杯

json template-engine liquid shopify

7
推荐指数
2
解决办法
8937
查看次数

如何缩进包含模板的内容

我正在使用 go 模板为 kubernetes 创建 yaml 定义。我正在尝试嵌套模板,但遇到了无法重用定义的问题,因为包含时缩进是错误的。即,在一种情况下,内容需要缩进,但在另一种情况下不需要。如何控制包含内容的缩进?

下面举例。我正在重用 pod.tmpl,在第一种情况下,它可以按原样包含在内。在第二种情况下,我需要缩进整个内容,使其成为服务成员

{{ if (eq .Case "pod")
  # NO indenting
  {{ template "pod" }}
{{ end }}

{{ if (eq .Case "service")
  service:
    # need to indent! so contents become members of service:
    {{ template "pod" }}
{{ end }}
Run Code Online (Sandbox Code Playgroud)

yaml go templating-engine go-templates

7
推荐指数
2
解决办法
7519
查看次数

if-else取决于T是否是完整类型

如何检查某种类型是否是某种类型的完整类型.cpp

template<class T>class Test{
    //some fields
    void(*functor)(T*) =[](T*){}; 
    //^ will be written by some .cpp that can access T as complete-type 
    T* t=nullptr;
    void fComplete(){    
        delete t;     //faster
        /** ^ some code that use complete type*/    
    }
    void fForward(){
        functor(t);   //slower
        /** ^ some code that forward declaration is enough*/   
    }
    void f(){  
        /*if(T is complete type){    
            fComplete();
        }else fForward();*/
    }
};
Run Code Online (Sandbox Code Playgroud)

演示

当我想在我的自定义智能指针中过早优化删除功能时,它会很有用.

任何人都可以确认这是不可能的吗?
我不是要求解决方法(但我不介意) - 这个问题只是我的好奇心.

c++ templates incomplete-type c++14

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

所有constexpr变量是否隐式内联?

我正在玩自动模板参数,我很惊讶这段代码没有编译:

constexpr auto bar = 2;

template<auto& T>
struct Foo {
    auto operator()() const { return T; }
};

int main() {
    Foo<bar> b;
    b();
}
Run Code Online (Sandbox Code Playgroud)

Visual Studio 15.7(预览4)吐出这些错误:

error C2970: 'Foo': template parameter 'T': 'bar': an expression involving objects with internal linkage cannot be used as a non-type argument
 note: see declaration of 'Foo'
 note: see declaration of 'bar'
error C2440: 'specialization': cannot convert from 'int' to 'int &'
 note: see reference to class template instantiation 'Foo<0>' …
Run Code Online (Sandbox Code Playgroud)

c++ linkage c++17 inline-variable

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

为什么Object.assign之后我的计算属性无效?

我偶然发现了与现代JavaScript类似的代码:

let obj = {
  data: {number: 9},
  set prop(p) {
    this.data = p;
  },
  get prop() {
    return this.data;
  }
};

obj = Object.assign({}, obj, {
  data: {number: 2}
});

console.log('obj.data === obj.prop ', obj.data === obj.prop);
console.log('obj.data.number === obj.prop.number ', obj.data.number === obj.prop.number);
Run Code Online (Sandbox Code Playgroud)

任何修改都在计算属性之外进行,就好像没有修改一样。

我期望计算属性仍然存在。

有没有办法在调用后保留计算的属性Object.assign?谢谢。

javascript computed-properties

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

检查概念中的 constexpr

我刚开始做概念。检查表达式的语法非常有用,它为我删除了很多 sfinae 的样板文件。但是我想知道如何检查表达式是否可以在 constexpr 上下文中使用。有时这些表达式会导致无效。我可以想象的方式看起来像这样,没有注释 constexpr 关键字:

template<typename T>
concept foo = requires(T t) {
    /* constexpr */ { t.bar(); } -> std::same_as<void>;
    /* constepxr */ { T::foo; };
}
Run Code Online (Sandbox Code Playgroud)

但是,我非常怀疑这是正确的语法。有没有一种简单的方法来检查概念中表达式的constexpr-ness?

我不想检查 constexpr 函数的计算对于 的所有可能值是否不会失败t,我想知道我是否可以将该表达式放在编译器期望某些东西在编译时可评估的地方。

c++ constexpr c++-concepts c++20

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

关于 sfinae 默认参数值的实现分歧

我生成了一个存在实现分歧的代码,我想知道哪个编译器是正确的以及为什么,或者标准的哪一部分允许这些编译器有所不同:

#include <type_traits>
#include <cstdio>

// Only deleted when the constraint is not met
template<typename T>
struct deleted {
    template<typename U = T> requires (not std::is_integral_v<U>)
    deleted() = delete;

    template<typename U = T> requires std::is_integral_v<U>
    deleted() {}
};

struct trigger_error {
    template<typename F>
    operator F () {
        static_assert(not std::is_same_v<F, F>, "Cannot call f with floating point types");
        return F{};
    }
};

// Constrained function. Only callabale with integral types
// When called with something other than integral, display static assert. …
Run Code Online (Sandbox Code Playgroud)

c++ templates sfinae language-lawyer c++20

7
推荐指数
0
解决办法
129
查看次数

我应该担心C++ 17中的Wmissing-field-initializers和聚合初始化吗?

我用GCC编译了一些代码-Wall-Wextra启用了.此代码生成警告:

struct A { A(int) {} };
struct B {};

struct C : A, B {};

int main() {
    (void) C{1};
}
Run Code Online (Sandbox Code Playgroud)
main.cpp: In function 'int main()':
main.cpp:11:15: warning: missing initializer for member 'C::<anonymous>' [-Wmissing-field-initializers]
     (void) C{1};
               ^
Run Code Online (Sandbox Code Playgroud)

我应该担心吗?这是GCC输出此警告的错误吗?似乎我没有要初始化的字段,也没有缺少参数.

c++ aggregate-initialization c++17

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