小编Iva*_*nov的帖子

如何使用cmake获得彩色输出?

我想在CMakeLists.txt中有消息功能,输出彩色文本.也许逃脱序列.例如

message("\x1b[31m;This text must be in red")
Run Code Online (Sandbox Code Playgroud)

它不起作用.我明白了

cmake代码中的语法错误

/home/taurus/cmakecolor/CMakeLists.txt:1
Run Code Online (Sandbox Code Playgroud)

解析字符串时

\x1b[31m;This text must be in red
Run Code Online (Sandbox Code Playgroud)

无效的转义序列\ x

cmake

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

调用重载的static_cast是不明确的

我有一些像这样的代码

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

struct A
{
    operator int() const { return 1; }
    operator B() const { return B(); }
};

int main()
{
    A a;
    static_cast<B>(a); // Error here
    a.operator B(); // This is OK
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它会产生这样的编译错误:

main.cpp: In function ‘int main()’:
main.cpp:16:21: error: call of overloaded ‘B(A&)’ is ambiguous
     static_cast<B>(a);
                     ^
main.cpp:4:5: note: candidate: B::B(int)
     B(int v) {}
     ^
main.cpp:1:8: note: candidate: constexpr B::B(const B&)
 struct B
        ^
main.cpp:1:8: …
Run Code Online (Sandbox Code Playgroud)

c++ static-cast

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

Qt - 混合Qt和std :: C++类型

更多的是自定义和练习题,但它是否被认为是不好的形式,或者是高度不可取的(选择你对不良的解释),在一个程序中混合使用Qt库类型和类似的标准C++类型?

例如,坚持使用ONLY QStrings进行字符串使用是非常明智的,还是人们经常在源文件中混合使用QString和std :: string类型?

我继承了一些代码,包括在一个文件中使用QString和std :: string,我想知道是否要将所有内容转换为其中一个.

c++ qt std

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

为什么退出时不会破坏php脚本?

我有这样的问题。在我的系统上exit根本不起作用。操作系统:Fedora 30、PHP 7.3。

简单的脚本:

<?php

exit;
exit();
exit(0);
exit(1);
exit("exit");

die;
die();
die(0);
die(1);
die("die");
echo "Hello world\n";
Run Code Online (Sandbox Code Playgroud)

输出:

$ php check-exit.php 
Hello world
Run Code Online (Sandbox Code Playgroud)

为什么会出现这种情况?如何使exit工作按照记录进行?

php

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

自动检测返回类型的模板功能

我有一些功能的类.在所有类中,函数具有相同的名称和参数类型,但返回类型不同.我需要一些模板功能,可以自动检测正确的模板替换而无需尖括号.

测试代码来说明问题:

struct Float
{
    static Float convert(int i)
    {
        return Float{static_cast<float>(i)};
    }

    float _f;
};

struct Int
{
    static Int convert(int i)
    {
        return Int{i};
    }

    int _i;
};

template<typename T>
T convert(int i)
{
    return T::convert(i);
}


int main()
{
    Float f1 = convert<Float>(10);
    Int i1 = convert<Int>(10);

    // Float f2 = convert(10); compilation error
    // Int i2 = convert(10); compilation error

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

PS模板让我疯狂,但我无法理解它们.

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

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

标签 统计

c++ ×3

c++11 ×1

c++14 ×1

cmake ×1

php ×1

qt ×1

static-cast ×1

std ×1

templates ×1