language-lawyer

    12热度

    1回答

    考虑下面的代码: namespace C { class X {}; } namespace A { class X {}; namespace B { using namespace C; X x; } } 我期待的x类型为C::X由于using namespace指令,而是既VS2010和命名空间B内在线LLVM/

    14热度

    2回答

    可能重复: May I treat a 2D array as a contiguous 1D array? 考虑下面的代码: int array2d[10][10]; int *array1d = array2d[0]; 我从来没有听说过它不会工作实现的,但它是合法的访问和操作array2d通过array1d?该标准的哪一部分允许这样做?标准中是否有任何内容阻止实现在每个第二级数组之间插入

    2热度

    2回答

    我想要做的就是将一个参数作为字符串解析为一个没有任何评估的字符串。 例如,如果我有一个平凡的PROC刚刚打印出它的参数: proc test { args } { puts "the args are $args" } 我想要做的是把它叫做: test [list [expr 1+1] [expr 2+2]] ,而不是有TCL评估[list [expr 1+1] [expr 2

    7热度

    2回答

    这纯粹是假设的,但我不确定下面的代码是否会导致根据C++规范的未定义行为。我想在一个对象中创建一个字节的副本,用零覆盖它,然后将旧字节复制回来。我可以这样做,而不会导致未定义的行为? 示例代码: NonPODType o; char bytes[sizeof(o)]; memcpy(bytes, &o, sizeof(o)); memset(&o, 0, sizeof(o)); memc

    4热度

    5回答

    语法功能模板 template <**class** T, ...> returntype functionname(arguments) { ..... ..... } 的我有两个问题吗? 为什么模板参数应被声明为一个类的类型?(即 与使用class关键字) 当我们宣布它作为一个类类型,那么什么东西编译器 会做什么?

    4热度

    2回答

    我试图让我对C中序列点的理解 - 只是想检查一下。目前,我认为(1)是不确定的,而(2)仅仅是没有说明的,因为在(2)中,在评估参数g和h(因此我们不修改i两次序列点),但f参数的评估顺序仍未明确。我的理解是否正确? #include <stdio.h> int g(int i) { return i; } int h(int i) { return i; }

    3热度

    1回答

    据我所知,没有R值参考文献,完美转发在C++将是不可能的。 但是,我想知道:需要吗? 例如,this page指出本实施例中,其中的R值的引用显然必要的: X foo(); X x; // perhaps use x in various ways x = foo(); 最后一行以上: 自毁所保持的资源x, 克隆临时资源y由foo返回, 破坏临时,从而释放其资源。

    14热度

    1回答

    从2.13.2/3 双引号"和问号?,可以被表示为 自己或通过转义序列\"和\? [...]。 简单地说,以下内容: char x = '\?'; //or '\"' char y = '?'; //or '"' 代表相同的字符。为什么对待这两个(特别是?)与其他角色不同?

    5热度

    3回答

    在C++中,我可以依赖于在所有情况下初始化为false的新布尔吗? bool *myBool = new bool(); assert(false == *myBool); // Always the case in a proper C++ implementation? (更新代码,以反映评语)

    10热度

    3回答

    如果std::tuple的所有成员都是standard layout types,那std::tuple本身是标准的布局吗?用户定义的拷贝构造函数的存在使得它不是微不足道的,但我想知道它是否仍然是标准布局。 来自规格的报价是很好的。