小编qxz*_*qxz的帖子

为什么这段代码用gcc编译而不用clang编译

这段代码与gcc/g ++和msvc完全兼容,但与clang无关.它一直抱怨没有找到Log的匹配功能,发生了什么?

#include <iostream>

template <typename Function, typename... Args>
auto Call(Function func, Args&&... args) -> typename std::result_of<Function&(Args&&...)>::type
{
    return func(std::forward<Args>(args)...);
}

template <typename T, typename... Args>
T (*Log( T (*FuncPtr)(Args...) ))(Args...)
{
    return FuncPtr;
}

int main()
{
    auto r = Log(Call<int(int), int>)([](int x){
        return x*10;
    }, 10);
    std::cerr << r << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

错误:

> error: no matching function for call to 'Log'
>     auto r = Log(Call<int(int), int>)([](int x){
>              ^~~ test7.cpp:15:5: note: candidate template ignored: couldn't infer …
Run Code Online (Sandbox Code Playgroud)

c++ g++ c++11 clang++

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

JS全局"let"变量在功能上没有更新?

编辑:我已将此报告为Chromium错误:https://bugs.chromium.org/p/chromium/issues/detail? id = 668257

我在JS中用可以射击的敌人创建一个小帆布游戏.为了测试,我创建了一个全局声明的标志,let fancy = true;以确定是否使用"花式"定位算法.我这样按下P就会切换这个标志.我的主要功能,每秒frame调用另一个函数autoShoot,五次.autoShoot使用fancy旗帜.

今天,奇怪的事情开始发生了; 我不记得引入了什么变化.有时,当我按下P时,autoShoot表现得像fancy是没有被切换.我做了一些调试和发现新的触发值反映内frame,但autoShoot不更新的价值.它间歇性地发生,有时它的价值autoShoot会自行解决(没有我做过任何事情).

我把代码减少到了以下,这对我来说仍然存在问题.尝试多次按P.对我来说,两个值"不同步"并在按P一次或两次后显示不同:

在我的电脑上按P后的屏幕截图

(我在Windows 10上运行Chrome"Version 54.0.2840.99 m".)

const canvas = document.getElementById("c");
const width = 0;
const height = 0;
const ctx = canvas.getContext("2d");
const ratio =1;// (window.devicePixelyRatio||1)/(ctxFOOOOOOOOFOOOOOOOOOFOOOOO||1);
canvas.width = width*ratio;
canvas.height = height*ratio;
canvas.style.width = width+"px";
canvas.style.height = height+"px";
ctx.scale(ratio, ratio);

function testSet(id, val) {
  console.log(id+": …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome let requestanimationframe ecmascript-6

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

Firebase如何更新多个孩子?

我有很多孩子这样的父母:

 Parent:{
        "childe1":"data",
        "childe2":"data",
        "childe3":"data",
        "childe4":"data",
        "childe5":"data"
 }
Run Code Online (Sandbox Code Playgroud)

如何同时更新孩子[ childe1 , childe2 , childe3 ],防止其他任何用户同时更新?

javascript firebase firebase-realtime-database angularfire2

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

xcode中的随机重复符号(C++)

我正在尝试在Xcode 4.6.3中构建一个C++项目.

在我的项目中(一个非常简单的OpenGL游戏的开头)我有两个文件:

textures.h:

#pragma once

#include <GLUT/GLUT.h>

void load(); // load textures

GLuint dirt, water; // variables to store texture handles
Run Code Online (Sandbox Code Playgroud)

textures.cpp:

#include "textures.h"

#include "util.h"

void textures::load() {
    dirt = util::loadTexture("/Some/Path/Soil.png");
    water = util::loadTexture("/Some/Path/Water_fresh.png");
}
Run Code Online (Sandbox Code Playgroud)

这里util.h定义了util :: loadTexture函数.

有两个文件包含textures.h.第一个(main.cpp)调用load()函数作为初始化的一部分,并访问dirt变量以绑定Soil.png纹理.第二个(Chunk.cpp)包含textures.h,但实际上并没有从中访问任何东西.

当我尝试构建项目时,它给出了以下错误:

duplicate symbol _dirt in:
    /Users/me/Library/Developer/Xcode/DerivedData/OpenGL_Testing-epporrdukapbwzawfhiwnlztzdns/Build/Intermediates/OpenGL Testing.build/Debug/OpenGL Testing.build/Objects-normal/x86_64/main.o
    /Users/me/Library/Developer/Xcode/DerivedData/OpenGL_Testing-epporrdukapbwzawfhiwnlztzdns/Build/Intermediates/OpenGL Testing.build/Debug/OpenGL Testing.build/Objects-normal/x86_64/Chunk.o
duplicate symbol _water in:
    /Users/me/Library/Developer/Xcode/DerivedData/OpenGL_Testing-epporrdukapbwzawfhiwnlztzdns/Build/Intermediates/OpenGL Testing.build/Debug/OpenGL Testing.build/Objects-normal/x86_64/main.o
    /Users/me/Library/Developer/Xcode/DerivedData/OpenGL_Testing-epporrdukapbwzawfhiwnlztzdns/Build/Intermediates/OpenGL Testing.build/Debug/OpenGL Testing.build/Objects-normal/x86_64/Chunk.o
duplicate symbol _dirt in:
    /Users/me/Library/Developer/Xcode/DerivedData/OpenGL_Testing-epporrdukapbwzawfhiwnlztzdns/Build/Intermediates/OpenGL Testing.build/Debug/OpenGL Testing.build/Objects-normal/x86_64/main.o
    /Users/me/Library/Developer/Xcode/DerivedData/OpenGL_Testing-epporrdukapbwzawfhiwnlztzdns/Build/Intermediates/OpenGL Testing.build/Debug/OpenGL Testing.build/Objects-normal/x86_64/textures.o
duplicate symbol _water in:
    /Users/me/Library/Developer/Xcode/DerivedData/OpenGL_Testing-epporrdukapbwzawfhiwnlztzdns/Build/Intermediates/OpenGL Testing.build/Debug/OpenGL Testing.build/Objects-normal/x86_64/main.o
    /Users/me/Library/Developer/Xcode/DerivedData/OpenGL_Testing-epporrdukapbwzawfhiwnlztzdns/Build/Intermediates/OpenGL …
Run Code Online (Sandbox Code Playgroud)

c++ duplicate-symbol xcode4.6

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

模板文字被困在字符串变量中

我有一个模板Hello, ${user.name}存储在变量中。我正在使用读取来自外部文件的内容fs.read

现在,很明显,当我附加到目标div的innerHTML时,它按原样显示字符串,而不是按预期方式显示“ Hello,James”(假设user.name = James)。
有办法实现吗?

extfile.txt =>
{"A":"`Welcome, ${user.name}`"}

Node.js代码=>

fs.readFile(__ dirname +'/extfile.txt','utf8',函数(err,data){
  如果(错误){
    返回console.log(err);
  }其他{
    让x = JSON.parse(data);
    socket.emit('var',xA);
  }
});

HTML =>

socket.on('var',function(x)){
  getElementById('target')。innerHTML = x;
}

javascript node.js web

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

std :: setprecision没有显示尾随小数

我试图将double和整数打印为double.为此,我编写了以下程序:

int main()
{
    string object="1";
    std::stringstream objectString;
    objectString << std::setprecision(8) << atof(object.c_str());                
    cout<<"ObjectString="<<objectString.str()<< " "<<std::setprecision(10) <<  double(atof(object.c_str())) <<"\n";
}
Run Code Online (Sandbox Code Playgroud)

我期望输出为:

ObjectString=1.0  1.0
Run Code Online (Sandbox Code Playgroud)

但是,我得到的输出为:

ObjectString=1  1
Run Code Online (Sandbox Code Playgroud)

有人可以建议我哪里出错了吗?

c++ c++11

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