x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

What is the PCIP?

Hello, I am new to UE4 but currently following the official programming tutorial. I made it to part 18...but I finally need to ask what exactly is this PCIP? It seems to be some kind of factory...but I cant find it in the Object library.

Another thing...why does my IntelliSense take 5 seconds I until I get info on UE4 stuff? :(

Product Version: Not Selected
Tags:
more ▼

asked Jul 09 '14 at 05:32 PM in C++ Programming

avatar image

BlaXun
36 1 3 5

avatar image Rama Jul 09 '14 at 10:44 PM

It's the Pineapple Cucumber Intelligent Parsnip

I had to look a long time in the code base to finally figure this out

Rama

PS: welcome to Answerhub!

avatar image zeOrb ♦ Nov 14 '14 at 11:02 AM

Oh Rama! Never disappointed in your answers! :D

avatar image Rama Nov 14 '14 at 05:07 PM

haha and furthermore PCIP is going away in 4.6 :)

Nice to hear from you zeOrb!

Rama

avatar image Antidamage Oct 29 '15 at 06:56 PM

Thank you, I spent ages looking for this. I was confused when I saw DigitalPickleModule derived from both PCIP and Vinegar, but it all makes sense now.

avatar image BlaXun Jul 10 '14 at 04:32 AM

...I am serious about it....I do not know what the PCIP is...so, can somebody give me a serious answer please?

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

3 answers: sort voted first

PCIP is the name of a variable. It is a pointer to an object of type FPostConstructInitializeProperties. From what I gather, it is a required parameter in any object that subclasses UObject. My guess is that the engine assumes that for any UObject that it wants to create, it will contain a constructor definition that accepts an FPostConstructInitializeProperties as a parameter. Since all objects essentially derive from UObject, you will see PCIP everywhere. Within your constructor, you can access the functions of PCIP with the dot notation to do some post-initialization stuff.

I'm guessing that this is what helps to provide all the introspection/polymorphic goodness in the engine.

If you look at an example of usage:

 AMyActor::AMyActor(const class FPostConstructInitializeProperties& PCIP)
     : Super(PCIP)

you can see that it is const. You can also see that prior to executing the constructor code, Super is initialized with the same PCIP. I don't think you will ever need to create a PCIP to pass to your object. This is something that should be handled by the engine and passed to your constructor when your object is created. You just need to make sure your object's constructor can pass it along to the next level up.

more ▼

answered Jul 10 '14 at 07:48 PM

avatar image

tkchen
106 7 11 20

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

Just a small addition to this old post. Most of you will probably have noticed already, but if your c++ class contains two constructor, one with PCIP, one without, the engine will only use the one with PCIP when instancing this object.

Simple example:

 #define print(text) if (GEngine) GEngine->AddOnScreenDebugMessage(-1, 15, FColor::White, text)
 
 AUser::AUser()
 {
     print("initialized WITHOUT PCIP");
 }
 
 AUser::AUser(const class FObjectInitializer &PCIP) : Super(PCIP) 
 {
     print("initialized WITH PCIP");
 }

The engine will only display "initialized WITH PCIP", so the first constructor is ignored by default

more ▼

answered Mar 30 '16 at 03:46 PM

avatar image

kryann
72 1 7 9

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

You can see what it stands for by reading the tooltip when hovering the mouse over the PCIP variable in Visual Studio, or reading a constructor definition :) It stands for Post Construct Initialize Properties

more ▼

answered Jul 10 '14 at 04:10 PM

avatar image

SiggiG
1 1 4

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question