小编A.B*_*.B.的帖子

vector :: emplace_back用于具有私有构造函数的对象

我希望我的Timer对象只能通过Timer :: create()创建.为此,我将构造函数设为私有.但是,我得到一个编译器错误,说"在新的all_atoroc.h的上下文中,"Timer :: Timer(unsigned int)'是私有的".我怎么解决这个问题?

class Timer {
    private:
        int timeLeft;
        Timer(unsigned int ms) : timeLeft(ms) {}

    public:
        static std::vector<Timer> instances;
        static void create(unsigned int ms) {
            instances.emplace_back(ms);
        }
};

std::vector<Timer> Timer::instances;
Run Code Online (Sandbox Code Playgroud)

c++ constructor c++11

20
推荐指数
2
解决办法
2327
查看次数

如何摆脱“终端将任务可以重复使用,按任意键关闭它。” 行为?

当(在这种情况下货物构建)执行任务,在VSCode终端画面显示如下:

> Executing task: cargo build <

(output of the task here)

Terminal will be reused by tasks, press any key to close it.
Run Code Online (Sandbox Code Playgroud)

烦人的是,这将我带离了普通终端,然后我必须获取终端窗口的焦点并按一个键才能返回。而当我这样做时,货运量的输出就消失了。

我如何停止这种行为?

如何摆脱文本的第一行和最后一行?

visual-studio-code vscode-tasks

13
推荐指数
4
解决办法
4934
查看次数

缺少升级库

我的VSC2013编译器要我链接libboost_system-vc120-mt-s-1_55.lib但该文件不存在boost\stage\lib.我只有以vc120-mt-1_55.lib和结尾的lib文件vc120-mt-gd-1_55.lib

我建立了提升

bootstrap
b2
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能获得上面的lib?

编辑:这个工作

b2 variant=debug,release link=static runtime-link=static

c++ boost

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

如何定义具有-PI到PI的有效范围的数字?

我想知道是否可以定义一个自定义数据类型,它只能在-3.1415926535897932和3.1415926535897931之间取值.

我们的想法是低于或高于该范围的值将自动"环绕",从而无需编写代码来进行转换,也消除了某处出错的可能性.

c++

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

初始化包含约 7000 个元素的容器时编译速度慢

我的源文件中有以下内容:

const std::vector<std::vector<UChar32>> table = {
    { 0x1234, 0xabcd },
    { 0x5678, 0xef01, 0xfe21},
    // ~7000 more elements omitted
};
Run Code Online (Sandbox Code Playgroud)

Visual Studio 2013 的编译时间非常慢(我在 i7-2600 上等待了 30 分钟才中止)。有什么方法可以加快速度吗?

编辑:我应该补充一点,这个源文件仅包含这个定义,以及必要的包含。UChar32 只是 std::int32_t 的类型定义。

c++ visual-studio-2013

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

当T允许时,Option <T>是否优化为单个字节?

假设我们有一个enum Foo { A, B, C }.

Option<Foo>在这种情况下,是否针对单个字节进行了优化?

奖金问题:如果是这样,优化过程的限制是什么?枚举可以嵌套并包含其他类型.编译器是否始终能够计算最大组合数,然后选择最小的表示形式?

optional rust

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

为什么Rust代码完成在我的Visual Studio 2015中不起作用?

我正在使用Visual Studio 2015 v14和VisualRust 0.1.2

Tools -> Options -> Text Editor -> Visual Rust语句完成变灰并且不能被启用.

Tools -> Options -> Visual Rust我选择Use bundled racerRead rust sources from environment variable

捆绑VisualRust的racer在手动调用时可以正常工作,即racer-120e98b.exe complete std::io::返回相关结果.

在Visual Studio中,写入let e = std::io::然后按下CTRL + Space以触​​发自动完成将仅返回保留关键字的列表(例如if,while,struct等).

我猜测问题是语句完成无法打开.我该如何解决这个问题?

rust visual-studio-2015

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

使用Formatter :: debug_list为二维数组实现Debug

我想知道是否有可能将其编译.

impl<T: fmt::Debug> fmt::Debug for Array2<T> {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        let ref mut builder = f.debug_list();
        self.rows().fold(builder, |b, e| b.entry(e)).finish()
    }
}
Run Code Online (Sandbox Code Playgroud)

self.rows是一个产生的迭代器&[T].

这里的错误是Size不是[T]在上下文中实现的b.entry(e),这是奇怪的,因为迭代器&[T]如前所述产生.

我无法解决这个问题,部分原因是因为我无法理解这里涉及的功能签名.

fn entry(self, entry: &Debug) -> DebugList<'a, 'b>
Run Code Online (Sandbox Code Playgroud)

请注意&Debug.

然而,相关的文档示例是将引用传递&i32给构建器.

struct Foo(Vec<i32>);

impl fmt::Debug for Foo {
    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
        self.0.iter().fold(fmt.debug_list(), |b, e| b.entry(e)).finish()
    }
}
Run Code Online (Sandbox Code Playgroud)

由于这种混乱,必须有一些有趣的东西需要学习.

期望的输出就像是[[1, 2], [3, 4]]. …

debugging traits multidimensional-array rust

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

我对Euler Project#3的解决方案太慢了

我是Haskell的新手并且在修改欧拉项目问题.我对问题#3的解决方案太慢了.起初我试过这个:

-- Problem 3
-- The prime factors of 13195 are 5, 7, 13 and 29.
-- What is the largest prime factor of the number 600851475143 ?

problem3 = max [ x | x <- [1..n], (mod n x) == 0, n /= x]
    where n = 600851475143
Run Code Online (Sandbox Code Playgroud)

然后我改变它以返回所有x而不仅仅是最大的一个.

problem3 = [ x | x <- [1..n], (mod n x) == 0, n /= x]
        where n = 600851475143
Run Code Online (Sandbox Code Playgroud)

30分钟后,列表仍在处理中,输出如下所示

[1,71,839,1471,6857,59569,104441,486847,1234169,5753023,10086647,87625999,408464633,716151937

为什么这么慢?我做了一件非常错误的事情,或者这种任务是否正常?

primes haskell prime-factoring

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

[a]究竟代表什么?

我正在做一些来自"真实世界Haskell"的练习.一个是设计安全版本init :: [a] -> [a].

我应该从这开始 safeInit :: [a] -> Maybe [a]

这就是我现在所拥有的.

safeInit :: [a] -> Maybe [a]
safeInit [] = Nothing
safeInit [a] = if length [a] <= 1
    then Nothing
    else Just (take (length [a] -1) [a])
Run Code Online (Sandbox Code Playgroud)

在GCHi中,测试时safeInit [1,2]我收到错误消息

*异常:ch4exercise.hs:(21,1) - (24,44):函数safeInit中的非详尽模式

我的印象[a]只是代表一个(任何大小)的列表a.我究竟做错了什么?

haskell

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

异常可以自动提供有关其环境的详细信息

我想做什么:

struct A
{
    void f()
    {
        throw auto_exception("something went wrong");
    }
}

class Foo
{
    void bar()
    {
        throw auto_exception("step 2 failed");
    }
}
Run Code Online (Sandbox Code Playgroud)

异常的what()字符串应分别读取:

"Exception in A::f(). something went wrong"
"Exception in Foo::bar(). step 2 failed"
Run Code Online (Sandbox Code Playgroud)

这可能吗?

c++ exception

3
推荐指数
2
解决办法
65
查看次数

是否有可能在函数内有条件地编译代码块?

我想知道这样的事情是否可行

fn main() {
    #[cfg(foo)] {
        println!("using foo config");
    }

}
Run Code Online (Sandbox Code Playgroud)

上下文是一些仅使用单元测试无法充分测试的代码.我经常要运行一个显示信息的"demo"cfg.我正在寻找手动注释/删除某些代码部分的替代方法.

conditional-compilation rust

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

查找带可变轮的机械里程表的所有可能读数

问题可以描述为找到机械里程表的所有可能读数,但需要注意的是它的车轮可能有不同数量的数字.

odometer = [["a1","a2","a3"],["b1","b2"],["c1","c2","c3","c4"]]
Run Code Online (Sandbox Code Playgroud)

到目前为止我得到了什么:

read_heads :: [[[Char]]] -> [[Char]]
read_heads [[[]]] = [[]]
read_heads x = map head x

-- pushes the first element of a list to the end
rotate :: [a] -> [a]
rotate [] = []
rotate (x:xs) = xs ++ [x]
Run Code Online (Sandbox Code Playgroud)

http://www.cartell.ie/car_check/wp-content/uploads/2010/02/Odometer-1.jpg

编辑:澄清问题.鉴于上面的里程表,创建一个包含所有可能读数的列表.

["a1","b1","c1"]
["a1","b1","c2"]
["a1","b1","c3"]
["a1","b1","c4"]
["a1","b2","c1"]
["a1","b2","c2"]
["a1","b2","c3"]
["a1","b2","c4"]
etc.
Run Code Online (Sandbox Code Playgroud)

haskell

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