小编Phl*_*das的帖子

是否有任何Dart图形库广泛使用硬件加速?

我正在Dart创建一个游戏,我非常喜欢Three.dart的外观.但是,我查看了它的来源,我无法弄清楚它使用了多少硬件加速,如果有的话.我的游戏对图形要求很高.是否有任何Dart图形库广泛使用硬件加速?

graphics hardware-acceleration three.js dart

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

防止在复制构造函数中切片

我想复制Foo对象类型的向量,但对象可以是几种不同的Foo派生类型.我无法弄清楚如何复制而不切片.这是我的玩具代码

#include "stdafx.h"
#include <memory>
#include <vector>
#include <string>
#include <iostream>

class Foo
{
public:
    Foo() { m_x = "abc"; }
    Foo( const Foo &other ) { m_x = other.m_x; }
    virtual std::string ToString() { return m_x; }
    std::string m_x;
};

class FooDerivedA : public Foo
{
public:
    FooDerivedA() : Foo() { m_y = 123; }
    std::string ToString() { return m_x + ", " + std::to_string( m_y ); }
    int m_y;
};

class FooDerivedB : public Foo
{
public:
    FooDerivedB() …
Run Code Online (Sandbox Code Playgroud)

c++ object-slicing

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

为什么标准库函数中没有使用迭代器参数提供重载?

标准库中有许多函数,其结构如下:

std::foo(begin(x), end(x), bar);
Run Code Online (Sandbox Code Playgroud)

令我困扰的是99%的时间,争论的开始和结束.为什么这些函数都没有过多的重载,这些重载肯定会被更频繁地使用:

std::foo(x, bar);
Run Code Online (Sandbox Code Playgroud)

它是语言或设计限制还是疏忽?谢谢.

c++ algorithm iterator range c++11

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

为什么这个正则表达式不返回任何匹配项?

我正在使用dart 正则表达式并试图找到匹配项

飞镖代码:http : //try.dartlang.org/s/SY1B

  RegExp exp = const RegExp("/my/i");
  String str = "Parse my string"; 
  Iterable<Match> matches = exp.allMatches(str);
  for (Match m in matches) {
    String match = m.group(0);
    print(match);
  }
Run Code Online (Sandbox Code Playgroud)

我正在尝试执行不区分大小写的搜索以查找字符串的所有匹配项。它说没有匹配项。我确定我在某个地方搞砸了,因为我是 regexp 的新手。如何修改代码以找到匹配项?

对于上下文,我计划修改代码以搜索我认为可以使用以下代码实现的任何字符串。

RegExp exp = const RegExp("/${searchTerm}/i");
Run Code Online (Sandbox Code Playgroud)

regex case-insensitive dart

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

从函数返回unique_ptr时的unique_ptr所有权错误

我是unique_ptr的新手.一切都很顺利,直到我遇到一个函数返回一个新的unique_ptr.编译器似乎抱怨可能拥有unique_ptr的多个对象.我不确定如何满足编译器的投诉.任何帮助表示赞赏.

void Bar::Boo()
{
    ...
    // m_Goals is of type std::unique_ptr<Goals>
    auto x = m_Goals->Foo(); // error: 'std::unique_ptr<_Ty>::unique_ptr' : cannot access private member declared in class 'std::unique_ptr<_Ty>'
    //auto x = std::move( m_Goals->Foo() ); // same error
    ...
}


const std::unique_ptr<Goals> Goals::Foo()
{
    std::unique_ptr<Goals> newGoals( new Goals() );
    ...
    return newGoals;
    // also tried "return std::move( newGoals )" based on http://stackoverflow.com/questions/4316727/returning-unique-ptr-from-functions
} // this function compiles
Run Code Online (Sandbox Code Playgroud)

c++ unique-ptr

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

函数定义在 cpp 文件中时出现链接器错误

我的解决方案有三个项目:GoogleTest(用于使用 Google Test)、Vi(用于大部分逻辑)和 ViTests(用于使用 Vi 的单元测试)。ViTests 项目引用了 Vi 项目和 Google Test 项目。

vi在v1.h中有如下代码

#pragma once

namespace Vi
{
    class Vi1
    {
    public:
        int SomeInt();
    };
}
Run Code Online (Sandbox Code Playgroud)

和匹配的 v1.cpp

#include "vi1.h"

namespace Vi
{
    int Vi1::SomeInt()
    {
        return 123;
    }
}
Run Code Online (Sandbox Code Playgroud)

ViTests中的测试功能如下

TEST(Vi1Foo, SomeIntIsSame)
{
    Vi1 v = Vi1{};
    EXPECT_EQ(123, v.SomeInt());
}
Run Code Online (Sandbox Code Playgroud)

链接器错误说有一个未解析的符号SomeInt。但是,我可以通过像这样内联函数来消除链接器错误:

namespace Vi
{
    class Vi1
    {
    public:
        int SomeInt() { return 123; }
    };
}
Run Code Online (Sandbox Code Playgroud)

为什么将单元测试项目SomeInt放在单独的 cpp 文件中时找不到函数定义?

谢谢。

额外的细节很有用:我正在使用 Visual Studio 2015。

错误信息: …

c++ linker

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

为什么libmp3lame将零添加到MP3的开头?

我有一个未压缩的.wav文件,可以将其转换为96k MP3文件:

ffmpeg.exe -i song.wav -vn -b:a 96000 -ac 2 -ar 48000 -acodec libmp3lame -y song.mp3
Run Code Online (Sandbox Code Playgroud)

输入文件有637386个样本。输出有639360个样本。MP3中的多余样本在文件开头均为零。这种情况发生在我翻译的每个文件中,而不仅仅是libmp3lame,使用更多的编解码器。这是FFMPEG错误还是编解码器错误?为什么要添加这些?有没有办法阻止它们被添加?

编辑:简化的示例和控制台输出:

ffmpeg.exe -i song.wav -y song.mp3

ffmpeg version N-55796-gb74213d Copyright (c) 2000-2013 the FFmpeg developers
  built on Aug 26 2013 19:43:51 with gcc 4.7.3 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. …
Run Code Online (Sandbox Code Playgroud)

ffmpeg

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

成员函数可以像C++一样是const吗?

假设我有一个C++函数签名:

bool Foo::bar() const;
Run Code Online (Sandbox Code Playgroud)

最后的"const"表示Foo中的成员变量不会通过调用bar来改变.有Dart相当吗?

dart

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

如何获取数据框中每个组的均值

这是我的数据:

  v        x
  0:0       96
  0:0      119
  0:0      108
  1:0       73
  1:0       65
  2:0       83
  2:0       73
  2:0       23
Run Code Online (Sandbox Code Playgroud)

如何通过v的组得到平均值,即所有0:0,1:0等的x的平均值.

我失败的尝试:

df = read.csv(input.file.path, header=TRUE)
df$v <- as.factor(df$v)
ave(df$x, df$v)
Run Code Online (Sandbox Code Playgroud)

aggregate r dataframe

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

无需复制即可将valarray转换为矢量

我有一个非常大的valarray,我需要转换为一个向量,因为我正在使用的库只需要一个向量作为输入.我想知道是否可以在不复制的情况下从valarray转换为vector.这就是我所拥有的:

#include <vector>
#include <valarray>

int main() {
    std::valarray<double> va{ {1, 2, 3, 4, 5} };

    //Error: cannot convert from 'initializer list' to 'std::vector<eT,std::allocator<_Ty>>'
    //std::vector<double> v1{ std::begin(va), va.size() };

    //Error: cannot convert from 'std::valarray<double>' to 'std::vector<eT,std::allocator<_Ty>>'
    //std::vector<double> v2{ std::move(va) };

    // Works but I'm not sure if it's copying
    std::vector<double> v3;
    v3.assign(std::begin(va), std::end(va));
}
Run Code Online (Sandbox Code Playgroud)

有关assign的文档说明该函数"将新内容分配给向量,替换其当前内容,并相应地修改其大小.".这听起来像是复制品.有没有办法不复制?

c++ vector valarray

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