title: Default/boilerplate code gives me error in Visual Studio 2017. E1574. Unreal. But Build Succeeded
body: <p>I am trying to learn UE4, but currently I am stuck doing something really simple. I want to create a Breakout style 'Paddle' as a blueprint.</p>
  
  <p>But I have strange problem where my code looks good to me (and I am copying the code directly from a tutor video) but in Visual Studio I get <strong>error: E1574 static assertion failed with "TAtomic is only usable with trivial types"</strong>. I even deleted all my code and just left it back with the default code that UE4 provides (when I clicked 'Create C++ Class > Actor'). The error still persists when building that.</p>
  
  <p>The other problem I get is that the 'details' panel in my Paddle_BP is empty for the StaticMeshComponent that I instantiated in my code. In the tutorial, it provides a StaticMeshComponent where you can choose a mesh, add physics and other options.</p>
  
  <p>Here is my code:</p>
  
  <p><strong>Paddle.h:</strong></p>
  
  <pre><code>#pragma once
  
  #include "CoreMinimal.h"
  #include "GameFramework/Actor.h"
  #include "Paddle.generated.h"
  
  UCLASS()
  class SHIT_PONG_CPP_API APaddle : public AActor
  {
  GENERATED_BODY()
  
  public: 
  // Sets default values for this actor's properties
  APaddle();
  
  UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "ActorMeshComponents")
  UStaticMeshComponent* StaticMesh;
  
  protected:
  // Called when the game starts or when spawned
  virtual void BeginPlay() override;
  
  public: 
  // Called every frame
  virtual void Tick(float DeltaTime) override;
  
  };
  </code></pre>
  
  <p><strong>Paddle.cpp</strong></p>
  
  <pre><code>#include "Paddle.h"
  
  // Sets default values
  APaddle::APaddle()
  {  
  // Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
  PrimaryActorTick.bCanEverTick = true;
  
  StaticMesh = CreateDefaultSubobject&lt;UStaticMeshComponent&gt;(TEXT("CustomStaticMesh"));
  
  }
  
  // Called when the game starts or when spawned
  void APaddle::BeginPlay()
  {
  Super::BeginPlay();
  
  }
  
  // Called every frame
  void APaddle::Tick(float DeltaTime)
  { 
  Super::Tick(DeltaTime);
  
  }
  </code></pre>
  
  <p>I have read this thread (<a href="https://stackoverflow.com/questions/56570681/static-assertion-failed-with-windows-headers-require-the-default-packing-option">Static assertion failed with &quot;Windows headers require the default packing option...&quot;</a>) and page from Microsoft (<a href="https://docs.microsoft.com/en-us/cpp/build/reference/zp-struct-member-alignment?view=vs-2019" rel="nofollow noreferrer">https://docs.microsoft.com/en-us/cpp/build/reference/zp-struct-member-alignment?view=vs-2019</a>) about changing the compiler settings. But the instructions seem to be out of date I cannot find "Configuration Properties > C/C++ > Code Generation" in my options at all.</p>