草庐IT

const_buffers

全部标签

c++ - 返回指向 const 数据成员的 const 指针和 'auto' 关键字。有点迷茫

我最近一直在学习C++,今天才被介绍到const和const正确性的概念。为了更好地理解这个理论,我一直在编写一系列简单的程序来确保我正确理解了这个概念。我以为我什么都明白了,但是当在其中一个程序中使用auto关键字时,我似乎有点卡住了。为了测试我是否理解const指针的工作原理,我编写了一个简单的程序。我不会费心发布整个事情,因为它只有两个部分是相关的。我有一个具有int类型的const数据成员的类:constinttryToChangeMe;在这个类中,我还有一个成员函数,它返回一个指向上述constint的const指针:constint*constMyClass::test()

c++ - constexpr const char * 与 constexpr const char []

“第一次尝试”没有编译,而第二次编译。为什么?有什么区别?第一次尝试:#includeintmain(){constexprconstchartext2[]="hello";constexprconstchar*b=&text2[4];//error:'&text2[4]'isnotaconstantexpressionstd::cout第二次尝试:#includeintmain(){constexprconstchar*text1="hello";constexprconstchar*a=&text1[4];std::cout我使用(g++版本4.9.2)编译g++-std=c++1

c++ - constexpr const char * 与 constexpr const char []

“第一次尝试”没有编译,而第二次编译。为什么?有什么区别?第一次尝试:#includeintmain(){constexprconstchartext2[]="hello";constexprconstchar*b=&text2[4];//error:'&text2[4]'isnotaconstantexpressionstd::cout第二次尝试:#includeintmain(){constexprconstchar*text1="hello";constexprconstchar*a=&text1[4];std::cout我使用(g++版本4.9.2)编译g++-std=c++1

c++ - Visual Studio 2015 : is a set of const pointers allowed?

我们将很快升级到VS2015,我在重大更改列表中找到了这个:constelementsTheC++standardhasalwaysforbiddencontainersofconstelements(suchasvectororset).VisualC++2013andearlieracceptedsuchcontainers.Inthecurrentversion,suchcontainersfailtocompile.source我想知道是否有人知道这是否也适用于集合。我知道映射仍然可以包含const指针作为键,因为它们无论如何都是const。一个例子:std::set我还能这样

c++ - Visual Studio 2015 : is a set of const pointers allowed?

我们将很快升级到VS2015,我在重大更改列表中找到了这个:constelementsTheC++standardhasalwaysforbiddencontainersofconstelements(suchasvectororset).VisualC++2013andearlieracceptedsuchcontainers.Inthecurrentversion,suchcontainersfailtocompile.source我想知道是否有人知道这是否也适用于集合。我知道映射仍然可以包含const指针作为键,因为它们无论如何都是const。一个例子:std::set我还能这样

c++ - 函数后的 const 如何优化程序?

我见过一些这样的方法:voidSomeClass::someMethod()const;这个const声明有什么作用,它如何帮助优化程序?编辑我看到这个问题的第一部分之前已经问过......但是,它仍然没有回答第二部分:这将如何优化程序? 最佳答案 如果编译器知道类实例的字段没有在const成员函数调用中被修改,它就不必重新加载它在const函数调用之前可能保存在寄存器中的任何字段。这有点像discussiononconst_cast中的C++常见问题解答。. 关于c++-函数后的con

c++ - 函数后的 const 如何优化程序?

我见过一些这样的方法:voidSomeClass::someMethod()const;这个const声明有什么作用,它如何帮助优化程序?编辑我看到这个问题的第一部分之前已经问过......但是,它仍然没有回答第二部分:这将如何优化程序? 最佳答案 如果编译器知道类实例的字段没有在const成员函数调用中被修改,它就不必重新加载它在const函数调用之前可能保存在寄存器中的任何字段。这有点像discussiononconst_cast中的C++常见问题解答。. 关于c++-函数后的con

c++ - 在 C++ 中,堆分配的对象可以是 const 吗?

在C++中,堆栈分配的对象可以声明为const:constClassobject;之后尝试在此类对象上调用非常量方法是未定义的行为:const_cast(&object)->NonConstMethod();//UB堆分配的对象可以是const并产生相同的后果吗?我的意思是有可能出现以下情况:constClass*object=newClass();const_cast(object)->NonConstMethod();//canthisbeUB?也是未定义的行为吗? 最佳答案 是的。构造和销毁const堆对象是合法的。与其他co

c++ - 在 C++ 中,堆分配的对象可以是 const 吗?

在C++中,堆栈分配的对象可以声明为const:constClassobject;之后尝试在此类对象上调用非常量方法是未定义的行为:const_cast(&object)->NonConstMethod();//UB堆分配的对象可以是const并产生相同的后果吗?我的意思是有可能出现以下情况:constClass*object=newClass();const_cast(object)->NonConstMethod();//canthisbeUB?也是未定义的行为吗? 最佳答案 是的。构造和销毁const堆对象是合法的。与其他co

c++ boost::filesystem undefined reference to `boost::filesystem3::path::root_name() const'

在尝试编译利用boost::filesystem库的代码时,我一直遇到错误。我不明白我得到的任何编译器输出。这是我从http://www.highscore.de/cpp/boost/dateisystem.html#dateisystem_pfadangaben复制的代码:#include#includeintmain(){boost::filesystem::pathp("C:\\Windows\\System");std::cout我有Ubuntu11.10,我已经安装了libbost-dev和g++。这是终端的样子:sam@sam-MT6707:~/Dokumente/Prog