compiler-bug

    6热度

    1回答

    编译一些代码时,我遇到了一个编译器错误,这对我来说似乎很陌生,涉及到继承,嵌套类,声明和访问修饰符。 基本上,意图是派生类型公开嵌套的基类型的受保护的类。 在以下短例子来说明这个问题: class Base { protected: struct Nested { enum value_enum { val = 0, v

    12热度

    3回答

    我有以下一段代码,它不在Visual C++ 2015下编译,但在GCC 4.8.4下。我想知道哪个是对的?有问题的代码是在这里如下: template <class T> class ATemplate; template <class R, class A1> struct ATemplate<R(A1)>{ }; int main() { ATemplate<vo

    1热度

    1回答

    当我尝试编译下面包含的代码时,我注意到了一个奇怪的行为。我有4个文件如下 createshared.h: #ifndef CREATESHARED_H_ #define CREATESHARED_H_ #include <memory> #include <utility> #ifdef USE_REFREF template<typename T, typename... Args

    0热度

    2回答

    我有以下真或假的程序 int a = 216; bool* v = (bool*)((void*)&a); std::cout << (*v == true) << endl; 我希望这个程序打印出真或假,而是它打印出216我与g++ (Ubuntu 4.8.2-19ubuntu1) 4.8.2编译它。预计会出现行为还是一些错误?为什么等号运算符会返回不同于bool的类型? -------

    5热度

    1回答

    Visual C++ 2012.代码。我认为它应该编译;编者尊重地不同意。我已将范围缩小到: struct B { }; void foo(B* b, signed int si) { } // Overload 1 void foo(B const* b, unsigned int ui) { } // Overload 2 int main() { B b; u

    5热度

    1回答

    下面的代码编译在Visual C++ 2013但不G ++ 4.8.2下: template<class T> int MyFunc(T& t) { return static_cast<int>(CCodes::blah); } template<> int MyFunc(float& t) { return 0; } int main() {

    7热度

    1回答

    这里是一个简单的复制器,我定义了一个带有隐式重新排序转换的“可交换”对类型。如果函数f的参数处于预先存在的命名值(本例中为t),则隐式转换由编译器按预期应用。但是,如果我试图直接在文字CommutativePair上调用f,它会因类型错误而失败。在这种情况下,编译器不应用隐式重新排序转换。 object repro { import scala.language.implicitConv

    1热度

    2回答

    一个临时的std :: initializer_list与范围鉴于这种代码 #include <iostream> #include <initializer_list> #include <string> int a, b; int main() { for (auto p : std::initializer_list<std::pair<int &, std::stri

    4热度

    3回答

    此代码接受一个输入图像,并且产生尺寸的输出图像的两倍大。内循环中的前四行写入原稿的四个相同大小的副本,最后四行应覆盖小图像,其中一个副本的输入图像是原始图像的两倍。 代码编译和没有错误运行于Java 8更新45在Windows 8.将所得图像不是,正如所料,其中一个输入大副本。输出的下半部分与预期相符,但上半部分由循环内前两行写入的两个原始大小的副本组成。注释掉这两行会导致初始期望的结果,所以似乎

    3热度

    2回答

    我有一个C++ 11程序来检查数字是否为素数。程序等待准备好未来的对象。准备就绪后,该程序会告知未来对象的提供者函数是否将该数字视为素数。 // future example #include <iostream> // std::cout #include <future> // std::async, std::future #include <chrono> // std::