小编R. *_*des的帖子

如何在C++ 11中使用带有引用类型实例对象的向量?

是否有可能在C++ 11中使用没有可复制对象(有引用实例)的std :: vector?

struct CanNotCopy {
  int& intref_;
  CanNotCopy(int& i) noexcept : intref_(i) {}
  // How do I make move constructor and operator = ?
};

std::vector<CanNotCopy> hoge; // OK
hoge.resize(10); // default constructor required
int j = 123;
hoge[1] = CanNotCopy(j);  // copy constructor required
Run Code Online (Sandbox Code Playgroud)

c++ c++11

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

在C++中对普通整数使用原子操作

我有一个struct包含int m_ref表示内部引用计数的整数(比如说).

为了保持C兼容性,我无法将类型更改为std::atomic<int>:struct可能只包含普通旧数据.

但是,我想调整我的代码以利用C++ 11中的原子功能; 即我需要完成:

++m_ref;
Run Code Online (Sandbox Code Playgroud)

--m_ref;
Run Code Online (Sandbox Code Playgroud)

作为原子操作.我目前正在使用汇编程序(英特尔总线锁)来执行此操作,但该代码几乎不可移植,而且我很想在C++提供标准构造时删除它.

不知何故,我需要进入'引擎盖'并做什么atomic<T>但没有创建原子类型的开销:我担心附加m_ref atomic<T>会降低性能.

我怀疑这是非常标准的,我在这里缺少一些简单的东西.

c++ atomic c++11

0
推荐指数
2
解决办法
1391
查看次数

在 C++ 11 中,对于 Lvalue 具有标识但不可移动是什么意思?

我现在正在学习 C++ 11 并且对 C++ 11 中表达式的值类别感到困惑。根据术语,左值是 W 的左上角,即 iM(或有时是 im),意思是“具有身份但不能移动从”。这真的让我很困惑。请考虑以下示例:

#include <iostream>

int main()
{
    int a = 0, b = 1, c = 2;
    a = std::move(b = c);
    std::cout << a << '\n';
}
Run Code Online (Sandbox Code Playgroud)

这个例子编译得很好。

我们都知道赋值b = c是一个左值,那么“不能移动”是什么意思?请举例说明这一点!

谢谢!

c++11 value-categories

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

棘手的循环

我对C语言中的for循环问题感到困扰.

我写的时候:

#include<conio.h>
#include<stdio.h>
main()
{
    int i = 0;
    for( ; i ; )
    {
        printf("In for Loop");
    }
    getch();
}
Run Code Online (Sandbox Code Playgroud)

输出:没有打印.

代码执行,但printf语句由于条件没有打印.好的,这里没问题.

但是当我写这段代码时:

#include<conio.h>
#include<stdio.h>
main()
{
    for( ; 0 ; )
    {
        printf("In for Loop");
    }
    getch();
}
Run Code Online (Sandbox Code Playgroud)

输出:输入循环.

我的for循环执行了一次,但实际上它一定不能被执行.我不知道为什么?stackoverflow的编码器/程序员/黑客可以帮助我.请解释一下,为什么我的for循环只给出一次这个输出.

c for-loop infinite-loop

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

在Linux上用C++格式化硬盘

我正在尝试制作一个程序来格式化硬盘,现在我被困在我搜索的格式代码中,我发现SHFormatDrive()但是我发现win xp后来支持的功能以及我找不到使用它有任何帮助!

c++ linux

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

防止保存为网页和.js文件

我想阻止我的网站保存为浏览器的功能.我的网站也有一些javascript文件.是否有任何源代码可以防止从浏览器或网站加密源代码保存为网站.

谢谢

javascript asp.net

-2
推荐指数
2
解决办法
4721
查看次数

iPhone应用程序崩溃

运行应用程序时出现以下异常时出错.

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<FavoriteViewController 0x158d30> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key customCell.'
    *** Call stack at first throw:
    (
        0   CoreFoundation                      0x314d0987 __exceptionPreprocess + 114
        1   libobjc.A.dylib                     0x319a149d objc_exception_throw + 24
        2   CoreFoundation                      0x314d0705 -[NSException dealloc] + 0
        3   Foundation                          0x31d28b4f -[NSObject(NSKeyValueCoding) setValue:forUndefinedKey:] + 182
        4   Foundation                          0x31d2803b _NSSetUsingKeyValueSetter + 90
        5   Foundation                          0x31d29da3 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 194
        6   Foundation                          0x31cdbb17 -[NSObject(NSKeyValueCoding) setValue:forKeyPath:] + 130
        7   UIKit                               0x33a8860f -[UIRuntimeOutletConnection …
Run Code Online (Sandbox Code Playgroud)

iphone tableview

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

如何从内存地址获取值?

我想从一个内存地址获取值,而不会崩溃程序.

这是我的代码:

int main(){
    int *ptr=(int*)0x09D37570;
    while(1){
        system("cls");
        cout<<(*ptr);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是这会导致程序崩溃,它会通过调用*ptr来崩溃,为什么会这样?如何才能毫无问题地获得价值?

c++ memory windows

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

用C++重载'space'运算符?

我在C++方面有一点经验.我知道如何重载加号和什么不是,但想重载空间操作符.

例如:

MyObject obj();

result = obj - foo; // This would be treated as a normal '-' operation.

result = obj-foo; // This would invoke code which throws an assert at runtime
Run Code Online (Sandbox Code Playgroud)

这将允许我执行我试图为我的团队制定的某些风格指南.

谢谢!

c++ operator-overloading c++11

-6
推荐指数
2
解决办法
3415
查看次数

Math-pow结果不正确

            double a1;
        a1 = Math.Pow(somehighnumber, 40);
        something.Text = Convert.ToString(xyz);
Run Code Online (Sandbox Code Playgroud)

我得到的结果是E + 41等,它像1,125123E + 41等我不明白为什么.

c# math floating-point

-8
推荐指数
2
解决办法
1123
查看次数

C++ char*问题

#include<iostream>
using namespace std;
int main()
{
    char *name="Siva",*str;
    for(int i=0;i<strlen(name);i++)
    {
        str[i]=name[i];
    }
    cout<<str;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

第一个程序给出输出Sivaœ>即siva有一些垃圾值....但第二个程序显示分段错误...请帮我找出确切答案...

#include<iostream>
using namespace std;
int main()
{
    int i=0;
    char *name="Siva",*str;
    for(i=0;i<strlen(name);i++)
    {
        str[i]=name[i];
    }
    cout<<str;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++

-8
推荐指数
1
解决办法
1321
查看次数