小编mon*_*ani的帖子

本地静态变量被多次实例化,为什么?

我对从这段代码得到的结果感到困惑.在一个dll中,当静态变量初始化时,计数器递增.然后当执行main时我读了这个计数器,但我得到的是0而不是1.有人可以向我解释一下吗?

在我的动态库项目中:

// Header file
class Foo {
   int i_ = 0;

   Foo(const Foo&) = delete;
   Foo& operator= (Foo) = delete;

   Foo()
   {
   }

public:
   void inc()
   {
      ++i_;
   }

   int geti()
   {
      return i_;
   }

   static Foo& get()
   {
      static Foo instance_;
      return instance_;
   }

   Foo( Foo&&) = default;
   Foo& operator= (Foo&&) = default;
};

int initialize()
{
   Foo::get().inc();
   return 10;
}

class Bar
{
   static int b_;

};

// cpp file
#include "ClassLocalStatic.h"


int Bar::b_ = initialize();
Run Code Online (Sandbox Code Playgroud)

在我的应用项目中 …

c++ c++11

5
推荐指数
2
解决办法
3650
查看次数

libc ++实例化异常规范的向量和字符串编译简单代码时出错

我编译这个简单的代码时遇到错误,如果我删除了noexcept,我没有收到错误:

#include<vector>
#include<string>
class Foo
{
public:

protected:
   Foo(Foo&&) noexcept = default;
   Foo& operator=(Foo&&) noexcept = default;

   Foo()
   {
   }

private:

   std::vector<std::string> vectorFoo_;
};
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误,我理解它是在异常规范的实例化中,但我怀疑std :: string不是不可移动构造,...第一个错误让我觉得有一个bug.

在/Users/Mani/Development/Projects/flowOfLife/Graphics/Graphics/TestCompileError.cpp:1中包含的文件中:/Users/Mani/Development/Projects/flowOfLife/Graphics/Graphics/TestCompileError.h:4中包含的文件: /usr/local/bin/../lib/c++/v1/vector:575:67:错误:'std :: __ 1 :: is_nothrow_move_constructible中没有名为'value'的成员,std :: __ 1 :: allocator >>> ' NOEXCEPT(is_nothrow_move_constructible ::值); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^包括/Users/Mani/Development/Projects/flowOfLife/Graphics/Graphics/TestCompileError.cpp:1:包含在/Users/Mani/Development/Projects/flowOfLife/Graphics/Graphics/TestCompileError.h:4中的文件:在文件中包括在/usr/local/bin/../lib/c++/v1/vector:264:/usr/local/bin/../lib/c++/v1/__config:325:34:注意:从宏扩展' NOEXCEPT '定义NOEXCEPT(x)noexcept(x)^包含在/Users/Mani/Development/Projects/flowOfLife/Graphics/Graphics/TestCompileError.cpp:1:/ Users/Mani/Development/Projects/flowOfLife/Graphics/Graphics/TestCompileError中的文件. h:29:29:注意:在这里请求'vector'的异常规范实例化std :: vector vectorFoo_; ^在/Users/Mani/Development/Projects/flowOfLife/Graphics/Graphics/TestCompileError.cpp:1中包含的文件:/Users/Mani/Development/Projects/flowOfLife/Graphics/Graphics/TestCompileError.h:4中包含的文件:在/usr/local/bin/../lib/c++/v1/vector:265中包含的文件中:/usr/local/bin/../lib/c++/v1/__bit_reference:15中包含的文件:In文件包含在/usr/local/bin/../lib/c++/v1/algorithm:624:/ usr/local/bin/..Tp> :: type> ^包含在/Users/Mani/Development/Projects/flowOfLife/Graphics/Graphics/TestCompileError.cpp:1中的文件:包含在/ Users/Mani/Development/Projects/flowOfLife/Graphics/Graphics中的文件/TestCompileError.h:4:/usr/local/bin/../lib/c++/v1/vector:575:20:注意:在模板类'std :: _1 :: is_nothrow_move_constructible的实例化中,std :: __ 1: :allocator >>> '在这里请求 NOEXCEPT(is_nothrow_move_constructible ::值); ^在/Users/Mani/Development/Projects/flowOfLife/Graphics/Graphics/TestCompileError.cpp:1中包含的文件:/Users/Mani/Development/Projects/flowOfLife/Graphics/Graphics/TestCompileError.h:4中包含的文件:在/usr/local/bin/../lib/c++/v1/vector:264中包含的文件中:/usr/local/bin/../lib/c++/v1/__config:325:34:注意:扩展从宏' NOEXCEPT '定义 …

clang c++11 libc++

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

使用树顶部的lldb和xcode

我在/ usr/local/bin中构建了lldb树的顶部,我想告诉xcode使用这个二进制文件而不是默认的二进制文件.但我找不到如何/在哪里设置这个.

xcode lldb

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

标签 统计

c++11 ×2

c++ ×1

clang ×1

libc++ ×1

lldb ×1

xcode ×1