小编tub*_*erd的帖子

lambda闭包中的模板

任何人都可以告诉我为什么下面的代码

namespace detail
{
    ...

    template<typename ... T_Args>
    void duk_get_args(duk_context*& context,  std::function<void(T_Args...)>& func)
    {

        duk_get_args_impl<T_Args ...>(context, func, std::index_sequence_for<T_Args ...>());
    }
}
template<typename ... T_Args>
duk_c_function duk_function(std::function<void(T_Args ...)> function_item)
{
    std::function<void(T_Args ...)> closure_function = function_item;
    duk_c_function function_return = [closure_function] (duk_context* ctx) -> duk_ret_t {
        detail::duk_get_args<T_Args ...>(ctx, closure_function);
        return 0;
    };
    return function_return;
}
Run Code Online (Sandbox Code Playgroud)

抛出以下错误,如果有解决方法吗?

||=== Build: Release_win64 in dukbind (compiler: GNU GCC Compiler) ===|
include\dukbind\detail.hpp||In instantiation of 'dukbind::duk_function(std::function<void(T_Args ...)>)::<lambda(duk_context*)> [with T_Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; duk_ret_t = int; duk_context = …
Run Code Online (Sandbox Code Playgroud)

c++ lambda templates

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

在C#中实现牛顿万有引力定律

我试图创建一个(差)行星运动的模拟,使用万用引力法计算速度,然后将它们全部加在一起计算最终的运动方向.然而,当试图实现公式时,我的行星只是不移动,当在控制台上输出计算出的速度浮点数时,它表示+无穷大.继承人我使用的算法:

    private void calculateVelocity()
            {
                List<Vector2> Velocities = new List<Vector2>();
                foreach (Planet p in Game1.Planets)
                {


                    Vector2 dir = Vector2.Subtract(p.Position, p.Position);
                    float radius = dir.Length();
                    float power = G * ((Mass * p.Mass) / radius);
                    float acceleration = power / Mass;
                    float velocity = acceleration * deltaTime * 0.1f;
                    //Console.WriteLine(velocity) -- Outputs random numbers and often +infinity !!!
                    dir.Normalize();
                    dir = Vector2.Multiply(Position, velocity);
                    Velocities.Add(dir);

                }
                foreach (Vector2 v in Velocities)
                {
                    Vector2.Add(Velocity, v);
                }
            }
Run Code Online (Sandbox Code Playgroud)

我希望你能帮助我解决这个问题.先生,丹尼尔

编辑

这是(希望)工作版本,以防任何人需要这个.

private void …
Run Code Online (Sandbox Code Playgroud)

c# xna physics

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

相互链接CMake子项目

我想链接通过彼此添加的项目add_subproject。假设我有一个这样的项目结构:

(root)
 I--exec
    I--"some source files"
    I--CMakeLists.txt
 I--lib
    I--"some source files"
    I--CMakeLists.txt
 I--CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)

有什么办法可以让我的根级别CMakeLists.txt排序为工作区文件?因此,它的行为就像.sln来自Visual Studio的?

我尝试过此操作,目的是让您了解我的意思:

cmake_minimum_required(VERSION 2.8)
project(test)

add_subdirectory(exec)
add_subdirectory(lib)

target_link_libraries(exec lib)
target_include_directories(exec lib/include)
Run Code Online (Sandbox Code Playgroud)

显然,它在倒数第二行引发了配置错误,指出我无法执行此操作,因为exec不是由该文件(当前CMakeLists.txt?)构建的。有什么办法可以实现我想做的事吗?

c++ cmake

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

可变参数模板整数序列的偏移量

好的,我会尽量保持这个简短.我知道你可以为变量模板生成一个整数序列std::index_sequence_for.现在假设我希望索引序列从特定的偏移量开始,但仍然与可变参数模板参数列表的长度相同.那可能吗?我没有在cppreference上找到任何类型的东西.

c++ templates c++11 c++14

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

解析 CSS 样式表

我目前正在为一个学习项目编写一个简单的 HTML 类型的渲染器,但目前我被困在解析部分 - 有点早,我知道。我采用了“不要重新发明轮子”的方法,并使用 TinyXML 来解析 HTML 文件。虽然绘图有点遥远,但我计划为此使用 OpenGL。但是,我遇到了 CSS 解析器部分缺少轮子的问题。是否有可用的小型且相当快速的 CSS 解析器库?如果是的话,有人可以指点我吗?如果情况并非如此 - 谁能给我一个简短的解释,说明使用 C++ 自己解析 CSS 文件的方法是什么?例如,我使用正则表达式吗?

所以,总结一下:

  • 是否有可用的 C/C++ 编写的小型/快速 CSS 解析器库?
  • 如何使用正则表达式(例如)解析一个极其简单的CSS 文件?

我绝不想包含整个 CSS 标准,现在只需要标准的“by-id”、“by-class”和“by tag”CSS 选择器就足够了。我期待着可以帮助我完成任务的东西:D

css c++ regex parsing

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

为什么指数超出范围?

我最近决定尝试做一个基于平铺的"游戏".我跟着来自YouTube的Nick Gravelyn和​​ouyyu91的教程,不管我做什么,它一直告诉我Map.Coords的索引超出了范围.(我希望你能从这段代码中读到一些内容,我并不太关心架构)

游戏类:

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace Platformer
{
    /// <summary>
    /// This is the main type for your game
    /// </summary>
    public class MainGame : Microsoft.Xna.Framework.Game
    {
        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;



        TileMap Map = new TileMap("Daniel", "Beastiality 1", "1/EASY");
        int TileWidth, TileHeight;

        public MainGame()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
        }

        /// <summary>
        /// Allows the game to perform any …
Run Code Online (Sandbox Code Playgroud)

c# xna

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

索引到底是如何工作的?

根据我的理解,IBOOpenGL中的索引或s主要用于减少给定几何图形绘制所需的顶​​点数量。据我了解,使用索引缓冲区,OpenGL 仅绘制具有给定索引的顶点并跳过任何其他顶点。但这是否消除了使用纹理的可能性?据我所知,如果您跳过带有索引缓冲区的顶点,它也会跳过它们的顶点属性吗?如果我的顶点属性设置如下:

attribute vec4 v_Position;
attribute vec2 v_TexCoord;
Run Code Online (Sandbox Code Playgroud)

然后使用索引缓冲区glDrawElements(...),这不会消除纹理的使用,还是会v_Position“重用”?如果不这样做,那么在使用索引缓冲区时如何进行纹理处理?

c c++ opengl indexing index-buffer

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

标签 统计

c++ ×5

c# ×2

templates ×2

xna ×2

c ×1

c++11 ×1

c++14 ×1

cmake ×1

css ×1

index-buffer ×1

indexing ×1

lambda ×1

opengl ×1

parsing ×1

physics ×1

regex ×1