Hi, I'm Damien Kernahan and welcome to the Service Design Show.  I need a new website. I need an updated website. Can you go and build me one? But for the service design, for the clients, we have, we've got a whole range of answers from, you help me cut through the bullshit in my organization. You help me make insights actionable. You make things meaningfully simple. You bring credibility to the work that we're looking to do. I mean, it just went on and on and on.


n-template. So you can see that how non-template template and non-template was printed out in this sequence. So let's solve one more example. So we will just remove this stuff from up till here and then we have this template class t. Now down here what we will do is that we will define a function let's name it as x and what we are going to do is that we are going to have arguments let's say the argument name is x or not x let's name it as y since the name of the function is x. So as you can see right in here it has to be t not a so you can see right in here that it is going to receive a value that is of any data type and it is going to store it in y. Now in the body what we are going to do is that we are going to see out template variable is y in this case. All right so now the next function that is going to be an overloaded function using the name x and what we are going to do is that we are going to write an int f which means that it is going to receive an integer value and then we are going to write in integer value is f right in here and then this and l call in at the end so I will just remove this from here and what we will write in that we will call this x and let's pass some stuff like let's say call m from here and then let's call this x by passing pure integer value and then call this x by calling a float value so these are all the possible combinations in which this function x can be called in and finally return zero so if I just run this code now all right to our extra now let's just run it yes this needs to be in small this also needs to be in small this is going to be small x not a capital x so let's just run it now and it ran perfectly so it says the template variable is m integer value is 50 the template variable is 40.6 so now in this program actually the function x is overloaded one version contained template arguments and the other version contained integer variables in main the x function is invoked tries with character values at the first time then with integer values and then with float values the first call executes the template version of the function x the second call executes the integer version of the function x and the third call again invokes the template version of the function x so why does it do it so is the very same logic as you can see right in here when this m was passed in this over here that is expecting an integer f to be received it failed completely this is a past so this is actually printed out so the template variable is and this m is going to be printed out since this m was received in this variable y since this has to be any data type then when this x 50 was called in this int f or you may say that this function over here this overloaded function is going to receive it because as I told you before that the non template actually takes precedence over the template once so this is going to be called and it says that the variable integer value is actually 50 and then when 40.6 was called in it was a float value so this failed completely this was called in and it says the template variable is 40.6 so this is actually how you can actually overload a function template so you have already understood what are the preferences and we have already covered the examples so I guess that's it with this tutorial thank you so much guys for watching and I'll see you guys in the next tutorial hey guys what's up this is Umar Khan and I welcome you to another tutorial here on this section on templates in C++ in this tutorial we are going to be seeing templates by abstracting our types specifically we are going to see that how you can use templates while coding your data structure for example linked list now a good way to write template is to start on with data structure or function that works for a particular type and then generalizing that type to a template parameter now you guys know how to code linked list already in the previous section now as you know that when you initialize a linked list every data type has to be offset in a for example if you have a linked list that contain integer values then all the nodes that are going to be a part of that linked list are going to store integer values and if you want to store for example a float value you have to make a new structure and then you have to store float values in that similarly if you want to store character values then you have to make another linked list in which the structure has to be made a new one and in that you have to initialize character so now what if you want to store float values integer values and character values into a same data structure or a linked list then you know templates is going to help you out how templates is going to help you out let's see with the help of an example so let's move on to our editor so here we are now the first thing you need to do is that you have to define a structure now a normal structure something looks like this for example if you have a structure named as link then what it's going to have that is going to have for example it's going to store integer values so the data part is going to be integer and then you have a pointer that is the next pointer and that is initialized using the name of the structure now what if you want to convert this simple structure to a template structure so that it store any kind of data values so for that what you have to do is that you have to write in template type name t and the changes that are going to be made in this struct link are that the data is going to be of any data type which means that you can now send in any kind of data to this structure so this is a very simple change you have to make so that it can now store any kind of data values now there are certain more changes now what are those changes now as you know that when you initialize a class for example the name of the class is linked list now the change at the top of this is going to be you have to also make this a part of a template that is named as t so now in this class what we are going to do is that we are going to have private members and in the private members what we are going to do is that we are going to write in link then we have to write in this t which means that this is actually the scope of this link list at this time and then we are creating a pointer named as first and this is actually the pointer that is going to point towards the very first link then we are going to have public items as well so we are going to write in public and then the public as you know is going to be the constructor function and in this constructor function what we are going to do is that we are going to initialize first equal to null simple enough now outside this public what we are going to do is that we are going to have two functions the first one is going to add item function that is going to actually add data items one link at a time and it's going to have a data type of t which means that it is going to receive value this is actually the function initialization part we are actually initializing the function named as add item and what is this function is going to do is it is going to receive values of any data type that's why we have specified t right in over here then we will have a display function as well now down here what we are going to do is after this class is that we are going to make the two function the first one was add item and the argument received was td and this is the body for that now some more changes that need to be made made above this are that we have to initialize template class t here as well and when you use this name you have to always use this t with this so that this t actually defines the scope of this link list so now we can easily actually use of a body and in the body what we are going to do is that we are going to write in link t right in here not outside steric new link equals to new link t which means that a new node is going to be created and in the new node what we are going to do is that we are going to write in new link since this is the pointer through which the new node has been created so in this in its data part what we are going to do is that we are going to store this d right in here which is received at the time of when we call this function add item and this d now can be of any data type since we have specified this t right in over here so always remember when you have to use the word link list when you have to use the word link you'll always have to add this t so that this t define actually the scope of this link list so now we have added the data part now what we need to do is that we need to insert add head of the link list so we are going to write in new link next is going to equal to first and then first equals to new link not a space between them good enough now what we need to do is that we have to make our display function right down here so we are going to write in template glass t and right after this we are going to write in white link list and a t right in here and then the name of the function display is going to be the name of the function and in the body of this function what we are going to do is that we are actually going to make an object and the name of the object is going to be current equals to first which means that we have to actually print the list so we are going to start on from the very first node since this is the very first node so we have actually made this pointer nameless current and pointing pointed it towards this whatever this node is pointing at so since this is pointing at the first node so this means that it's current at this time is also pointing at the very first node so now what we want to do is that we want to iterate this from the very start till the very end and print each and every element on its way so we're going to write in while current is not equal to null what it's going to do is that it's going to simply see out the data at every node and after printing the data at the node what it's going to do is it is going to move one step ahead using current equals to current next now to code the main function first thing we need to do is that we have to make the linked list object so we are going to write in linked list let's li be the object then what we have to do is that we have to add elements to that linked list so we are going to write in add item so for first cases since we have made this as int so what we are going to do is that we can only pass in integer values so for example we pass in two then we will just copy this from here and let's just pass in four up here six to this and then eight to this now for example we have passed in these four values now what we want is that we also want to let's say pass let's say corrector values so before passing let's just first call this play function for the integer values now we have to make another object linked list and in that instead of t what we are going to write in what we are going to write in character which means that now we can pass in actually character values so let's name it as lc this time and then using this lc object what we are going to do is that we are going to call in this add item function place this column here this arrow here place this column here let's just copy this again paste it here paste it here paste it here and let's just make it equal to b c and d and then we have to call in the display for this function as well and for example then you have to also pass in let's say float values or let's say long values or any kind of other values for example if I just write in float and let's just make it to lf this time and we are going to write in lf dot this is the function let's say 4.3 was passed in then we will just copy this and three values pasted let's make it equal to let's say 4.9 let's make it equal to something well 4.4 and finally let's make it equal to 7.9 and we have to also call the display function using this object so it's going to be lf dot displayed and finally we are going to write in return 0 so now if I just run this code here you can see that we have 8 642 at the top the integer values then we have dcba then we have 7.9 5.4 4.9 4.3 now you as you can see that the order has been scrambled a bit it's 2468 and then a vcd and 4.3 4.9 you can just make it equal to ascending order you know how to make it from your tutorial on linked list I guess I made some problem here so that's why it's printing in the decreasing order so the purpose of this tutorial is to just tell you that how using a single linked list that is named as link you can pass in float values you can pass in corrector values and you can pass in integer values as well since from the knowledge of linked list you know that only a single data data type elements can be stored in a single linked list but now using templates what you have done is that you have modified that concept and now you can store any data type value in a single linked list but by using templates so I guess that's it because in this tutorial you are to understand the basic example of this linked list and its association with templates so thank you so much guys for watching and I'll see you guys in the next tutorial hey guys what's up this is Umar Khan and I welcome you to another tutorial on templates in C++ in this tutorial we are going to be covering the topic template specialization and we will see what is the special behavior that can be exhibited by templates now templates in C++ is a feature we write code once and use it for any data type including user defined data types for example if you have a sort function then that sort function can be written and used to sort any data type of items a class stack can be created that can be used as a stack of any data type now what if we want a different code for a particular data type consider a very big project that needs a function sort for a race of many different data types so let quick sort be used for all the data type except character values in case of character values total possible values are 256 and counting sort may be a better option so is it possible to use a different code only when the sort is called for the character data type yes it is possible in C++ to get such a special behavior for a particular data type and this is what is called template specialization so let us see some example of how template specialization is different from the normal functions and how you can use template specialization for achieving a special behavior for a particular data type so let's move on to a compiler here we are now as a totally above that we have we are going to have a sort function and for every other data type it is going to be a simple template function but for character values it is going to have a special behavior so for example this is our template and we have class T right in here then we have this sort function and in this sort function we receive an array which we have to sort actually and then this is the size and finally what we are going to do here is that we are going to write the code that is to implement the quick sort so this is a basically a generic sort function now what if we want to have a template specialization specialization function that is specialized for character data types then how it is going to be coded and how it is going to be different from this one at the top here we are going to write in templates as usual then what we are going to do is that we are going to have these two brackets and we are going to specify nothing in between and this is what is the syntax of template specialization as well so right down here what we are going to do is that we are going to write in white sort and then we are going to write in the value that data type values for which we are going to make this template specialization function so in this case we are going to do it for character values so we have to specify character over in here and then in this case we were expecting any kind of data type but now what we are receiving is that we are receiving a character array and then the very similar in size and what we are going to do in this function is that we are then going to write the code to implement counting sort so this is basically the template function that is going to have the template specialization a function specialized for character data types only so another example could be let's say a class set that represent a set of elements and support operations like something union intersection negation and the other operations that can be performed on a set so when the type of elements is character we may want to use a simple boolean array of size 256 to make a set for other data types we have to use some other complex technique so an example program for function a template specialization is for example consider uh let's let's say we have a code down here let's just remove it from here and let's say that we have a template class d and then we have a function let's say void f and in this void f we are going to receive every kind of data types that is d a and then what we are going to do is that we are going to simply see out the main template function and then we are going to write in this a variable that is received right in here and then and now to talk about now the specialization function we are going to write in something like template and we are going to specify nothing in these brackets that I told you that this is the syntax for actually doing template specialization and then we are going to write in the very same function that is void f and that is going to be for integer values this time and in this function what we are going to do is that we are going to simply see out specialized template for integer data types and then we are going to simply see out the variable we have received that is a and then and l now down here in the main function what we are going to do is that we are actually going to call in this let's say first we call in it using character values then using integer values and then using float values so this is the possible combinations in which the function f can be called now as you can see right at the top here that this d is expecting any data type if we pass an adding data type this function is going to be called but this function that is the template specialization function it is expecting only integer values so what we are going to do is that we are going to pass in a character to this and integer to this and a float value to this columns at the end and now if I just run this code you can see right here that it says the main template function then it says the temp specialized template for integer data values then it says 10 you can see right in here this is also printed and then it says the main template function 10.28 now if I just explain what happened over here let's just resize it and you can see now right in here let's just scroll it a bit and when the first statement that was this right in here when a character value is passed in this function completely failed so this function was called in and it says the main template function is whatever was written in this function was printed out now when this integer one was called in always remember this preference type that when the specialization function is having an integer value then this function is always going to get a preference over this template function since this is a specialization template function so specialization template function are special so they are going to get a much higher preference than this template normal template function so this is going to be called for the integer values and it is going to print out specialized template for integer data values and then for float one what it's going to do is that it's going to simply call in this at the top because this completely failed because this is expecting an integer value so if you just see here and now what is the purpose of the template specialization actually as you can see that we have a different code or you can say a different line in this case but you can code any other code in this in these brackets of this white function and then in this white function you can also have a different set of code so for any other data type the code is going to be this whatever a set of code is it between these lines but when you have an integer values what you want is that you want a separate code to be executed so this is where the template specialization is going to help you out it is going to execute this code for every other data type but for integer values it will execute the special set of code you want to execute so this is actually the advantage of using template specialization in C plus class so now this was a part of template function specialization now let's move on to the next one that is the class template specialization and let's see some more example programs for a class template specialization so let's just remove this function templates from here remove this main function as well and now let's go on our class template specialization so let's say we have a template that is class t and then we have a class named as testing and in this this testing class what we have that we have a public constructor that is named as testing and in this constructor what we are going to do is that we are going to simply see out normal template constructor and these all are going to be in quotation marks good enough and then on there so this is actually a simple class of this template named as class t and then using that what we have done is that we have made its constructor as public and then simply see how that it is a normal template constructor actually so now what we are going to do is that we are going to make a specialization class so for that what we are going to do is that we are going to use the very same syntax but in case of function this time it is going to be something named as testing and finally we are going to write an int here so what it mean is that now this time this is going to receive every kind of value but this is only going to receive an integer values so when I just made in the object you will understand what is going on so this is also going to have a public constructor and in this public constructor what we are going to have is that we are going to have a simple see out statement that says this specialized template constructor and then this online and now down here in the main function what we are going to do is that we are going to make object the first one is going to be an integer object named as a then we are going to call in testing for this character and the name of the object is going to be b this time then for float values finally and the name of the object is going to be c this time and finally the statement return zero so for the first case what it's going to do is that the testing constructor function is going to be called and the integer values are going to be passed and then for then character values and then float values so let's just run it to see what is the output in this case so you can see right in here that it says specialized template constructor called and then for the remaining two calls from the main function normal template constructor is being called now why is it so because as you can see right in here that the for the first one that says specialized template constructor we have written here integer and as you can see right in here that specialized template constructor or the specialized template class is having this integer right in here so as in the previous case the preference was for specialized template in this case it is for the that as well this template that is the specialized template class is going to take preference over this one that is the normal template class so when this int is going to be passed in it is going to be called in and then for the remaining two that are for character and float this one completely failed because it is expecting integers and this is expecting anything so when it is expecting anything and this fails so this is only the option left so this constructor is called and the remaining two outputs as you can see right in here now this one this is a previous output this one right in here these two says normal template constructor so I hope it is clear now so now you know how function template specialization work and how class template specialization work so let me give you a quick recap of how does specialization actually work so when we write any template based function or class the compiler creates copy of that function or class whenever the compiler sees that being used for a new data type or a new set of data types so if a specialized version is present the compiler first check with the specialized version and then with the main template the compiler first checks with the most specialized version by matching the past parameter with the data types specified in the specialized version so this is why the specialized constructor is always called when it meets the requirement of that specialized function so I hope that this is all clear to you guys so I guess that's it with this tutorial in the next tutorial we are going to be covering about the types of template specialization in C++ that are partial specialization and explicit specialization so for now thank you so much guys for watching and I'll see you guys in the next tutorial hey guys what's up this is Umar Han and I welcome you to another tutorial on templates in C++ in this tutorial we are going to be covering about template specialization and we are going to be covering the types of template specialization so from the previous tutorial you already know what is specialization so in this tutorial we are going to be covering the types of specialization that is partial specialization and explicit full specialization for this tutorial we are going to be covering the first type that is the partial specialization so when you instantiate a class template the compiler creates a definition based on the template arguments you have passed in alternatively if all those template arguments match those of an explicit specialization the compiler uses the definition defined by the explicit specialization so basically what is the difference between partial specialization and explicit specialization so a partial specialization basically is a generalization of an explicit specialization an explicit specialization only has a template argument list whereas a partial specialization has both a template argument list and a template parameter list as well The compiler uses the partial specialization if its template argument list matches a subset of the template arguments of a template instantiation. The compiler will then generate a new definition from the partial specialization with the rest of the unmatched template arguments of the template instantiation. You cannot actually partially specialize function templates. In the future tutorial or in the next tutorial, we will be covering explicit full specialization in very detail. For now, you only need to know that partial specialization is a generalization of explicit specialization and partial specialization has an additional list that is the template parameter list along with template argument list, but template argument list are also present in explicit specialization. So to talk about the syntax of partial specialization, you can see right here on your screen, there are two kind of syntax that can be used that the first one is template, then the parametral list, then the class key, then the class headname, then the argument list, and then the declaration, or you can use template, then the parametral list, and then instead of the class key where you can use that you can use the declaration specified sequence, then you can use the declarator then the argument list, and then the initializer. Now here the class headname actually identifies the name of a previously declared class template, and declarator over here identifies the name of a previously declared variable template, and this is used since C++14. Now this declaration must be in the same name space or for member templates, the class scope as the primary template definition is it which it specializes. So let's go over an example for how partial specialization actually work and how they are going to be used for the help of templates. So let's move on to our compiler. So we will have a primary template and then we will have multiple partial templates and you will see how you can use different kind of partial templates. So here we are going to write in a template that is going to be a primary template, and the members for this are going to be class D, then class U that is actually the multiple in templates argument, and then we have an int i, and then we are going to use a structure that is x, which means that it is a general structure in which we have actually a white function. And in the body of that function, what we actually have is that we are going to simply see out that it is a primary template. So as you can see that it is a very simple and easy to understand that it is a straightaway primary template. Now to talk about partial specialization, we are going to use a template that is going to have partial specialization. So it is going to look very much like the first one that is class D. And then let's say we have a single variable that is int i. Now the structure is going to be different and it is going to be the structure that is going to be using this t and this i. And it is going to receive in variables. For example, the sequence for this is let's say t and then let's say a t pointer, which means that the second one is going to be a pointer and then an integer. So in the body of this what we are going to do is in the structure body we'll have a white function. And in this function what we are going to do is that we are going to simply see out partial specialization. Let's name it as number one. So it is partial specialization number one. So that at the end when the output is generated, you can simply differentiate that which part of this template is being executed. Now let's say we have one more template that has a class t as well as a class u and then an integer as well that is int i. And now in the structure what we have different is that first we have to write the name of the structure that is x. Yeah, I guess we also forget to give it a name here. So it is going to be named as x. And now what we are going to do is that we are going to actually change this sequence right in here. At first it was t then t strike and this I now we are going to let's say change it to let's say we have a t pointer. And then we will have a u which means another type of variable and then an integer value. And then in the body of this structure what we are going to do is that we are going to define a function again that is again going to be void punk. And then in the body of that function what we are going to do is that we are going to simply see out partial specialization number two. Alright, now we will have one more template down right here. And it is going to be a let's say simply a class t which means it is also going to have one instance. And then we will have our structure that is structure x. And in that structure x this time let's say we are expecting an integer value, then a t steric. And then another value that is 10. And then in the body of that what we are going to do is that we are going to again have a function that is white funk. And then we are again going to simply see out partial specialization. And it is going to be named as number three. Then in line space. And finally, let's have one more template that also has class t. Then let's say it also has a class u. And it also has an integer i. So we are going to also define a structure for that. And the name is going to be the very same. And then we are going to vary it this as let's say t, the u steric, because in the previous case, it was t steric, then you and then I. So now it is going to be t then you steric and then I. So now in the body of that structure, what we are going to do is that we are going to have the very same thing that is a function in which body we are going to write in c out partial specialization number four. Good enough. And and before going on to a main function, we have to specify this columns at the end of every structure. As you know that syntax for a structure always have a column at this end. So this column over here. And finally, at the end of this template right in here as well. So now let's move on to code our main function and see that how varying the argument is actually going to call the different specialization we have just used. So first let's call over that is the primary template. Let's first call our primary template that is going to be called from x. Then we have to specify an integer, then again an integer. And let's say the second value is 10. And the name of the object is let's say going to be a. So this is going to call our actually primary template. And then what we are going to do is that but we are going to call in our second one, that has a sequence of right up here, as you can see it has a sequence of a simple value than a pointer value and then integer value. So to call it, we are going to write in x, first an integer value, then an integer pointer. And then let's say an integer value that is five and we have to name the object as B. Then for the third one, the sequence is going to be again different. That is right in here a pointer than a gain a variable and then an integer. So it is going to be something like let's say integer value and then let's say the second one that is going to be passed in in that you over there is going to be a float value and then integer value is going to be 10 and the name of the object is going to be let's say C. Then for the next one, if you can see right in here the sequence that is for specialization number three, that is an integer entity steric and then this 10. So it is going to be something like integer and then let's say a character pointer and then again, individuality that is going to be on the name of the pointer is going to be D now. Then for the fourth one, it is going to be normal value than in pointer value and then an integer. So it is going to be something like X and let's say the first value is a float value and the second one is going to be a pointer. So let's make it as an integer pointer and then we are expecting an integer value. So let's make it equals to this 10 and then name of the pointer is going to be D. So now using these pointers that are ABCD and what we are going to do is that we are going to call in the functions in these structures. So it or funk is actually going to call in the function in the structure which is exactly this structure. In our case, it is the structure that is at the top right in here that it's a primary template and then we have partial specialization number one structure that is this then primary specialization number two structure is this then the primary specialization structure number three is there and primary specialization number four structure is right in here. So the a dot funk is going to call in over first one, then B dot Fung is going to call in the second one, then C dot funk is going to call in that specialization number two, then D dot Fung is going to call in specialization number three, and then E dot Fung is finally going to call in specialization number four. So let's just run it and and then I'll explain you that how these are all partial specializations. All right, that's simple, simple mistake I done there. And now let's just run it. And you can see right in here, it says primary template, then partial specialization number one, two, three and four respectively. Now as you can see that these specializations, while they were printed in a sequence, for example, if I just call it in some other sequence, let's call it first, and then call it later. And now run this code, you can see that these have been swapped for is at the top now three is at the bottom. So this all depends on the calling of this function and the structure, because every object has every structure. And since these structures are defined right in here. So if you consider any of this, for example, let's consider this one. In this, why this is a partial specialization because we have a class T, which means we have actually created a data type here that has the type name of T. So if you use this type name T right in here, means first we want to use it for a normal variable, then we want to use it for any pointer variable. And then this entire is right in here, which means that we are actually making something out of it and making a structure out of this, whatever we have initialized right in these brackets of this template. So this is actually called partial specialization in explicit full specialization, you will be seeing that we're going to be using the entire of this function and the entire of these arguments. But now we are actually, since this is a whole lot of, as you can see, it is an ocean of variables, or you can say ocean of variable types. But what we are going to using in here, we are going to use a template variable in a template pointer. And then using this integer, what we are going to do it, we are going to receive a value that is an integer value. So that's why it is called partial specialization. And in here, you can also see that we have now T and U, both, and then an integer i. So we can use any of these to make our structure. So we have taken this T and make it as a pointer and then a U and then this i. So this is partial specialization number two for us. And similarly, you can see right in here that you have this class T. So you can write an int then T steric and then 10.  And using these structures and the sequence you have specified your structures when you call define the sequence and these pointers and then you call the function, the respective functions of the respective structures are going to be called in. So one more thing before I move on is that you need to understand that each class template partial specialization is separate template. You must provide definition for each member of a class template partial specialization. So moving ahead. So the next thing we need to know is about template parameters and argument list of partial specialization. Now primary templates do not have a template argument list. This list is implied in the template parameter list. Template parameters specified in a primary template, but not used in a partial specialization are omitted from the template parameter list of the partial specialization. The order of a partial specializations argument list is the same as the order of the primary template implied argument list. Now in a template argument list of a partial template parameter, you cannot have an expression that involves non type argument unless that expression is only an identifier. Now if I just show you, you will see that the compiler will not allow the first partial specialization, but it will allow the second partial specialization. Why is it so? Let's see. So let's just remove this from here and remove it up till here. So for example, we have a template, which is right in here. And in that template we have int i and then int j. And then using that what we have is that we have a class that is named as X. Now what will be invalid partial specialization for that class in this case is that if we, for example, write in template int i and then class X and then we write in i steric 4 and let's say I write in i plus 3. And then this is the brackets for the class. And then this column at the end. Now as you can see that this is actually not going to be allowed by your compiler because the type of a non type template argument cannot depend on a template parameter of a partial specialization. The compiler will not allow this thing. So if you change it to something like template and int i using the same argument and then you write in class X very same way. But what you have to do is that you can write in i comma i. And in this case, it is actually allowed. But this one is actually not allowed. And this one right in here is going to be allowed because this is not a type of a non type template argument because it is not dependent on a template parameter of a partial specialization. So a partial specialization template argument list can also not be the same as the list implied by the primary template. And you cannot have default values in template parameter list of partial specialization. And in that case also, it is going to generate an error how it is. For example, if you write in template class T and then you write in T i and then you have a class named as X. And these are the brackets for your class. And then what will be invalid partial specialization in this case is if you write in template, then using the class T what you have to do is that you define in a class X and you write in T and 25. And then these are the brackets for your class. So this is also going to be not allowed because the partial specializations template argument list cannot be the same as the list implied by the primary template. In this case, this is actually the primary template. And this is the partial specialization template, the second one. So in these, you can see that the list implied by the primary template and the specialization template argument are the same. But a partial specialization template argument list, if it is equal to the list implied by the primary template, then it is going to generate errors. So you cannot have default values in the template parameter list of partial specialization, as I told you before. So these are some of the practices that are actually going to be not allowed in partial specialization of classes. So let's move back. And this is the final topic, matching of class template partial specialization. Now the compiler determines whether to use the primary template or one of its partial specialization by matching the template arguments of the class template specialization with the template argument lists of the primary template and partial specializations. Now, how does it's going to check? It's going to check it on three conditions. The first condition is that if the compiler finds only one specialization, then the compiler generates a definition from that specialization. The second rule is that if the compiler finds more than one specialization, then the compiler tries to determine which of the specializations is the most specialized. A template X is more specialized than a template Y. If every argument list that matches the one specified by X also matches the one specified by Y, but not the other way around. If the compiler cannot find the most specialized specialization, then the use of the class templates is ambiguous. The compiler will not allow that program. Now, the third one, third case in is going to be if the compiler, it does not find any matches, then what it's going to do is that the compiler generates a definition from the primary template. And these are actually the three condition. If it finds one specialization, if it's find more than one specialization, and if finds nothing. So these are the three cases of matching of class template partial specialization. So this was all about partial specialization. In the next tutorial, we are going to be covering the second type of specialization that is explicit for specialization. I know these topics are a bit tricky. So you need to go through them again and again, to understand and to clear any kind of ambiguity you have. So for this tutorial, that's all. Thank you so much guys for watching. And I'll see you guys in the next tutorial where we'll be covering the second type of specialization. So bye bye till then. Hey guys, what's up? This is Omar Khan and I welcome you to another tutorial on templates in C++. In this tutorial, we are going to be continuing with template specialization. And we will be seeing the types of template specialization again that are partial specialization and explicit specialization. In the previous tutorial, we already have covered partial specialization in very detail with examples. So in this tutorial, we are going to be studying about explicit or full specialization. So this is actually how the syntax of template explicit specialization look like we have the template, then the empty brackets, then the declaration part. Now here, the template prefix indicates that the following template declaration takes in no template parameters or in other words, it indicates that this is going to be a specialization kind of thing. Moreover, we have the declaration part that can be splitted into two parts that is the declaration name and then the declaration body. The declaration name is actually the name of the previously declared template. And you also have to note in here that you can forward declare an explicit specialization so the declaration body is optional, at least until the specialization is referenced. Now, what can be fully specialized? You can specialize nine kind of things that can be fully specialized, or you can say explicitly specialized that are function templates that are class templates, then you can also explicitly full specialized variable templates, member function of a class template, static data member of a class template, member class of a class template, member enumeration of a class template, member class template of a class or class template, and finally, member function template of a class or class template. So explicit specialization in detail if we talk, it is it may be declared in any scope where its primary template may be defined, which may be different from the scope where the primary template is defined, such as with out of class specialization of member template. Now explicit specialization has to appear after the non specialized template declaration, specialization must be declared before the first use that would cause implicit instantiation in every translation unit, a template specialization that has been declared but not defined can be used just like any other template. Now what is explicit specialization of a function template? When specializing a function template, its template arguments can be omitted if the template argument deduction can provide them from the function arguments. A function with the same name and the same argument list as a specialization is not a specialization. Thirdly, an explicit special specialization of a function template is in line only if it is declared with the inline specifier or defined as delete. It doesn't matter if the primary template is in line or not. Next point is about the default function argument. Default function argument cannot be specified in explicit specialization of function templates, member function templates and member function of class template when the class is implicitly instantiated. An explicit specialization cannot be a friend declaration. And finally, if the primary template has an exception specification that is not false, the explicit specialization must have a compatible exception specialization. So, now let's talk about the members of explicit specialization. When defining a member of an explicitly specialized class template outside the body of the class, the syntax of the specialization that is template and then the empty brackets, it is not used, except if it's a member of an explicitly specialized member class template, which is specialized as a class template because otherwise the syntax would require such definition to begin with the templates and it would require some parameter that are required by the nested template. So, an explicit specialization of a static data member of a template is a definition if the declaration includes an initializer, otherwise it is a declaration. These definitions must use braces for a default initialization. Third point you need to know about explicit specialization member is that a member or a member template of a class template may be explicitly specialized for a given implicit instantiation of a class template, even if the members or member templates is defined in the class template definition. One more thing you need to know is that members or a member template may be nested within many enclosing class templates and an explicitly specialization for such a member, there is always template and then the closing brackets that is the syntax for specialization, it is for every enclosing class template that is explicitly specialized. In such a nested declaration some of the levels may remain unspecialized except that it can specialize a class member template if its enclosing class is unspecialized. For each of these levels the declaration needs arguments as in the previous case because such specializations are themselves templates. So finally let's solve an example of how explicit or full specialization work to clarify and ambiguities and to explain what I've been speaking so far. So let's move on to my compiler that is right in here. So first what we are going to do is that we are going to have a normal template of class t that is equal to float then we have int i equals to five and then we are having a class a in which we will have a public constructor that is named as the name of the class that is a and int value. Now why I have left it you will come to know in a moment. Then we are going to have a specialized template and we are going to write in class a in which we will have public a constructor and finally these columns for the ending of a class and then we will have one more template that is also a specialized template and in this we will have a class that is for double and then in digital value and in the body of that what we will have is that we will also have a public constructor. All right so now right below this what we are going to do is that we are going to have one more template and that is going to be class t int i and we are going to write in a is less than this t and i is greater than a value of i and what we will have is that we will see out primary template and we will see out the value and finally and l. Now as you can see right here that this constructor function that is for class a and we have actually used the very same class that we have initialized right at the top here and we have used integer values and using that value which we have initialized right in here we have actually used that and store in the value of this int i and whenever this template is going to be called it is going to simply print out primary template and this value right in here. Now to talk about a not write in here right after this and this means that now we are initializing the members of this template right in here this take has to be removed from here so what are that we have to actually write in this a which is the constructor function which was declared to be public and what we are going to do in this is that we are going to see out explicit specialization. Now why it is explicit specialization this is because this was initialized this class a that was initialized using a specialization function has only one function that is the constructor function so when we actually use that function right in here it is actually the explicit specialization and what we are going to do is that we are also going to write in double 10 that is right in here which means we are using the second one right in here and then finally and l so this is for the second one and to code this for this first one let's just copy this paste it right here at the top and it is not going to be now like this it is going to be this one and then it is going to simply say explicit specialization and what it's going to say more is that it's also going to say default arguments because as you can see right in here we have default arguments for this one so for the second one that is this one we have also a constructor function and what we have in here was a class right above here that was that a double value and this 10 right in here so this is going to be printed out now what is going to be the scenario of the outputs that are going to be printed and how these are going to be called and when they are going to be called at what call they are actually going to be called because all have the very same net that is a so if you write an int comma any value that is let's say 8 and initialize an object then if you write in let's say a and then let's say an object name it as y and then if you write an a and you write in double comma 10 and name this object as z and now run this code all right I guess some problem with this it says it was previously defined here yes we have to actually write in here double then this 10 so that it looks as a function of this second one that is this one so this constructor function is actually the initialization of this one at the top right in here that has no arguments and then for the second one we have this double and 10 so whenever we are going to use in we are going to write in this a then this double 10 and then a call and call and which means that this a constructor actually belong to this one and then we are going to actually write in this c out statements so whenever an object is initialized and let me just first run you and show you the output of this so you can see right here that it says primary template then explicit specialization of default arguments then explicit specialization of this one so as you can see right at the top here the first one is that is says class t equals to float and then in the i equal to five so when this int was called in which means that the first value is going to be an integer and then this a was passed in and this object was passed in so whenever the constructor function for such a sequence is going to be called the first class template that is the primary template is going to be called in and the constructor function which was initialized right in here is actually going to be called in this statement over here is going to be printed out and secondly when you pass in nothing then this over here that says a and this a is a constructor function of this a and these empty brackets so this constructor function is going to be called in an explicit specialization of default arguments is going to be printed out and then when we you pass in double and ten in the brackets of this a constructor function so this mean that it belong to this constructor function that is of this double and ten so explicit specialization double ten is going to be printed out as you can see right on your output screens as his primary template then eight then explicit specialization of default argument then explicit and you can see one more thing that we have this eight right in over here so this eight was actually passed in from here this eight was made to be changed from here since this was the default value but when a value was passed in this i was changed from i equal to five to i equal to eight and then when it was printed right here that says value i which means that i is now eight so it printed out the value to be equal to eight right from in here because it was passed in from the calling area using this object so i hope it is clear now so the example that was used declared actually to explicit specialization for the primary template the template which is being specialized that is class a the object x uses the constructor of the primary template object y uses the explicit specialization of the constructor function with empty brackets and then object z uses the explicit specialization of arguments that have double and ten so i hope that was well understood and i guess that's it with this tutorial as well so thank you so much guys for watching and i'll see you guys in the next tutorial hey guys what's up this is umar han and i welcome you to the last tutorial on templates in c plus plus so i hope that whatever you have learned so far in this section has been helpful and you have understood each and every concept now i admit that this is a bit tricky and difficult topic i myself have gone through it many times when i was learning it so you don't need to worry if you don't get it the first time go through the tutorial again and again and clear each and every concept and still if you have got any issues then i'll be more than happy to help so i guess that's it with this section of templates thank you so much guys for watching and i'll see you guys in i guess the new section


Welcome back. Right. So in the last video, we learned about making an appointment and making sure it's the right time to talk because if you want to have a conversation and you want the other person to be present, you want to make sure that they're fully available. And making an appointment as opposed to catching them off guard is going to prep them, get them ready to be able to hear something that might be difficult without reacting. But the appointment itself, although it sets the stage, we find that there's something more needed because some people, it's hard just to be there, sit quietly and just really be in the other person's space. You must need something tangible to do to really get you into the other person's world and to kind of separate their words from your feelings. Especially if you're feeling anxious when they're sharing with you and it's almost like you want to commiserate or you want to give advice or you want to tell them not to worry. Instead of doing all those things, you need something else to do. So this is what Shlomo's going to teach us now what to do when you're listening. Right. And that's what we call mirroring. And what that means is just like a mirror, you reflect back exactly what is being said.  And you know, the first thought that goes in your mind as well, you know, I have or I wasn't late or I was only a minute late or I have a good reason for being late. Okay. Throw all that out the door. Right now you're being present. As we said, you're listening to the other person.  So part of it is one thing that you can tangentially do is to mirror back. What I heard you say is that you're really upset because they didn't call you. And it does a few things. First of all, it helps you not react. And it's really important because if we react in our emotional wellbeing is determined by other people's feelings, then we have no sense of self. We're just going to be basically manipulated by anything around us. So we want to be able to hear another person to make space for their feelings without it impacting us. So meaning in a negative, I'm saying not to be insensitive to it, but without making us upset or reactive or defensive. So mirroring it back helps you calm yourself down. It also helps the other person feel heard because sometimes all we need to do is feel heard as Rivko was saying before, that if she felt someone really listens to her, then it helps her feel much better. So just hearing being heard is validating because, well, you're acknowledging that I have a right to have these feelings, even if she said nothing. You didn't say you have a right to have these feelings. You said, you're here, you're upset with me. It just acknowledges the reality, provides a witness for your emotional state. And that's really important. So the mirroring is quite helpful. It also helps make sure that you did not interpret. We said before that it's really important not to interpret what the other person's saying and go out their own story. So one way to do that is to reflect it back because you'll run it by and the person who's sharing might say, that's not what I said. Yeah. So we're not going to want to say that, but so you'll say, we would say, you know, what I heard you say is that such and such. Did I get you? And the answer would be, well, you got some of it or you got a lot of it. And the part I would like you to get, or if they didn't get any of it, what I would like you to get is this. So, you know, I remember when I first started off and I had somebody who they were doing the mirroring and the woman was like, I think she said, that's not what I said, but the point was that like he was trying to listen, but he didn't hear what you were saying at all. Well, he made this whole spin and it just, it's very simple, but it's powerful. So this is why it's so important to be able to mirror back. And it just, we're trying to get the other person and it can be hard in the beginning, but to do that helps ensure that you didn't misinterpret it because the other person is going to give you that feedback. And then you ask, is there more meaning I'd like to hear more, tell me more, what's going on? A lot of times we don't feel safe opening up and sharing. So is there more as an invitation for the other person to continue sharing? So that's also important. So again, mirroring back, even though it seems like this is a really stilted way of talking, this is, you know, what I have to repeat back, but this is what's going to get you to the place where ultimately you want to be in the place where you have what we call like an internal mirror.  But in order to train our brain to be able to do that, to stop the reactivity, we need to do something tangible. As we repetitively do that over time, we become less reactive people because our instinct is just to hear the other person. So the mirroring helps facilitate that. So it's not necessarily that it's, you know, a communication technique. It's, yeah, it's a means towards an end. It's necessary to be able to train us to be a more dialogical person, which means to be able to make space for another person. And that becomes our MO that we naturally are present for someone else. But in order to do that, it's like, you know, you have to have the training wheels on when you're learning how to ride a bike before you can actually ride on your own. So, yeah, so for people that are reactive people, I will raise my hand. And it's kind of a lifelong process. Mirroring is so helpful. I remember when we first started, I was resistant because I felt like, oh, gee, this is boring. It's not a spontaneous way of sharing. But it's so much more emotionally safe to mirror someone or to be mirrored than to just go down the path of the alternative, which could be fighting. It could be blowing things up.  You're kind of thinking in your head, and you're wondering why I haven't yet done this. It's almost like a force field around you where you don't have to take in the barrage that you're getting from somebody else. It's almost like a way to protect yourself. It's like a mirror, I always say, I want to tell my couples, a mirror, it reflects, you're reflecting back what's being said. And it deflects it, deflects it off of you. And that's what we're saying, that it protects you from having to take in all the toxicity at the same time, enables you to be present and have compassion for the other person. Right, and to really learn how to be a much more emotionally intelligent individual by getting curious about what the person's saying or just even reflecting it back with no spend, just being present for that person is huge. Because you can't be there for someone else when you're stewing in your own emotional test ball or whatever. Yeah, so mirroring is really the number one, one of the foremost tools that we teach people when in doubt. If you don't remember anything else from our communication video series, when in doubt, just mirror, launch into a mirroring the person that's sharing with you.  You can try to improvise a little bit. Again, the challenge of improvising is that when I teach couples, I really want them to stick to it as strictly as possible when I work with them so they can get in the habit. Because what happens is when we kind of fudge it a little bit, that's when the interpretation comes in. But you can try to say it like you don't have to say when you're doing this at home or like in the office with someone, especially who's not kind of bought into this or doesn't even know what you're doing. You don't have to say what I heard you say is that you have to, you can say like, no, it sounds like you're really upset with me because I didn't call you. You want to tell me more about that? Right, that's what you're saying. Just like a little bit like improvise a little bit, make it a little bit more. Make it your own, make it more natural. Yeah, make it more natural. But at the same time, without the interpretation. So that's why it's easier. The more rigid you do it, the easier it is. The more verbate, closer verbatim, the less room for interpretation. But if you're working, if you're doing this off the cuff or with someone who's not kind of doing this with you together, then for sure, try to improvise in a way that gets the point across and gets the same benefits. Great, thank you so much, Lamo. Stay tuned for our next video.


Hi everyone, Joe for Jaspy's casewrakes.com coming at you with 2020 select football blaster box break number three This actually gives away the final spots in that 60 box mixer that we're about to do so big Thanks everybody here for getting in on it So as always we're gonna do the break itself first. So all 32 teams are in Grab the right list here Yeah, that's the right list and all teams are in so we're let's do the break first So all it randomized three and a one four times so a different dice roll for the giveaway part There's one two three And a one fourth and final time Three and a one four times for the teams one One fourth and final time We got eagles down to the bolts All right, so no trade windows in these little filler breaks, too So here's the first half of the list right here. Here's the second half of the list right there Could be some surprises in a blaster box of select Sort by Colin B And let's just print it and rip it the home run derby on tonight She's a lot of fun. Wow Pedro Martina is going Salvador Perez as his pick For the home run derby winner. All right.   Let's grab everyone's names from PJ down to Sean and everybody in between There's some new dice. There's a new list and let's roll it and randomize it three times two and a one top six after three good luck one two and three So from seven on down Sad times But I appreciate you giving this a shot ladies and gentlemen. Thank you now happy times though for the top six You're in that mixer Sean Aaron Sean Sean Carl and Aaron Congrats the top six. Thanks for giving this a shot. I'm Joe I'll see you in another in a separate video for that mixer just piece case rates.com


This 10-dumers corner from the near-subs. Try the flick! Oh, great! Dom Szilanky! One turn too many, bounces back to Lerma. 25 yards out, plays a lovely ball in behind for Stacey. Can he drive it across? Szilanky! Oh, great finish at the near post from Dom Szilanky. And Bournemouth take the lead with a beautifully crafty goal. Credit to Jefferson Lerma, who opened up the card of defence. Low scoring has been the order of the day. Nil Nil last night, of course, was in Coventry and Berling. There's Lloyd Kelly fires it in! Oh, Szilanky! How comes the goalkeeper, Raphael? Raphael knocked it straight to Szilanky. Raphael outside his box and also lost the trouble. Szilanky's there as well. Szilanky's got away from him. The goal's gaping! Not enjoying it today, training Rotherham 2-1. But here's Billing, driving down the left-hand side of the box. Here's Rico, Rico's cross in towards Dominic Szilanky with a header! Billing nearly did the splits like Bambi on ice. And Barnes, he've got himself into a problem. And Szilanky might burst away here. Dom Szilanky into the penalty here. Can he hold off the defender? David Brooks, bring to his left with Dominic Szilanky. Brooks slides in, Dom Szilanky. 35 yards from goal, leads it in to Stanislaus. That's a lovely ball. Well worked by the Cherries now to Kelly. Left side of the area on the chance to cross to the near post. Szilanky fair! What a finish! What a goal that is by Bournemouth. Super play by the Cherries. Intricate football across from the left. And who was there? Dominic Szilanky. Lee Stanislaus will come back to that. He turns his man very nicely, Junior Stanislaus. And now he threads in Dom Szilanky, who drives it for goal! He only needs one chance. He careers into double-fingers for the season and in first half stoppage time, Dom Szilanky. One shot, one goal. Cleared up towards the halfway line. We're into first half stoppage time. We've had a minute. I haven't seen a board yet. Dan Dume across to face the goal. Szilanky is back! Opening stretches along the leg in the centre circle to win it back. Now Stacey coming central. He's found a great ball after Szilanky on the right-hand side and now a reverse for Szilanky. He's got Stacey in the middle. Szilanky might not need it. Let's look for goal. Better looked in the club. Into the top six of the championship this evening. Another halfway line, then Pearson with pressure late to the substitute, Adam Smith still looking fresh outside him. Pearson rolls it in to Adam Smith, pulls it back to Pearson. Stuck, moved by Szilanky. Oh, given away by Edmunds, free on this occasion to Pearson. And then Pearson through to Szilanky. Opportunity here for Dom Szilanky. Oh, what a finish! Dominic Szilanky. That is a sensational finish from the cherries number nine there. When the lovely link covers, Billy Rosenthal.


It's just an honor, such a pleasure to be here. I want to thank Rajiv for the invitation many months ago to be here, which is a thrill for me. Charmaine for the introductions and for encouraging me to be myself and to share what brings me the passion in my life. And I want to thank Shaatri, I don't know if he's in the room, for giving me a great baseline for the introduction around that whole Ikigai concept about passion. And I want to say too, the interesting thing on stage this morning is not only do you have two Harvard MBAs, but we also both went to Tufts University and he didn't say that in his introduction, so we have the same university experience for college and the same MBA. So that I thought was kind of, there are no coincidences, right? The synchronicity is for Rose and I have been talking about that. Life is this wonderful string. So for me, why I am just so deeply honored to be here and to share with you, I'm going to speak for about 30 minutes and share with you how the Institute of Noetic Sciences studies energy, studies consciousness. But I importantly want to share with you as leaders, how do we bring this into reality running organizations? And for me, I could not have asked for a almost more miraculous path to be able to bring together my two passions in my life, which is I've always was committed to wanting to learn about business, wanting to be a leader of an organization. I grew up in a small town in New England in the far north of the United States and I just had this dream to go to the big city and to be able to work in corporations and in leadership. But I also had a side of me that was beginning to grow around this spiritual and I would say this interest in what are the other realms that influence us? Well, I had no idea how life would go in the path forward. But what it has brought me to was the more classic business training. And then by following my heart and my intuition, I ended up over time being able to become the CEO of the Institute of Noetic Sciences. And it's one of those life lessons that you think you have a plan and you think for the next 20, 30 years you know what that's going to look like. But it doesn't always go that way. And if you allow yourself to follow that intuition and go with the flow as we say, you can far exceed what your dreams were. So I feel deeply honored. I've been in the CEO position of IONs now for exactly a year, a year and a month. And I want to just tell you a little bit of how many of you know about the Institute of Noetic Sciences or IONs? If you just raise your hand so not too many, okay. IONs, well that's why I'm here. So IONs is actually, and we call it IONs, it's a little easier than Institute of Noetic Sciences, IONs was founded 45 years ago by the astronaut Edgar Mitchell. So Edgar Mitchell was part of Apollo 14 space program, and he actually walked on the moon. And when he was returning from his trip, can you imagine, he's returning in his capsule from the moon back to the earth. And he sees the earth, the earth rise on the, from his view in his window. He sees the earth come up. And this is pretty much a man who was a trained scientist, very much in the objective realities. He sees this image and he has this profound moment where he's overcome by this deep feeling of interconnection and seeing the earth, that's our earth, floating in this universe. He gets this profound moment of, wow. Look at our earth and then if you go deeper and you say, well on that earth we have all these countries with boundaries and borders, different cultures, different languages, but we're all one on this planet and then within this, we're within this large universe. He came back and he decided to focus his life and his work on investigating this consciousness. So he launched the Institute of Noetic Sciences and this is back in 1973. People thought, you know, can you imagine what people thought about that, successful astronaut? And he comes back and he says, we have to study this and 45 years later we still are.  And sometimes people like to use the word consciousness as a replacement for that, but it's this sense of inner knowing. And from there you say, well, you can talk about consciousness. So that word consciousness, are you familiar, do some of you feel you have a good sense of what consciousness means? If you were saying, are you conscious? Okay. I hope you are right now actually. I do. I'll be worried if you're not. Well, there's what we like to call little C consciousness and capital C consciousness. Little C consciousness is kind of how we are today. We're sitting here in this room. I'm aware of you in the audience. I'm aware it's a little cool in here. I'm aware I'm giving this speech. You know, we're here together. The big C consciousness is when you go deeper than that. So if you think about islands, last night over dinner I was having a lovely conversation about the Maldives, the Maldives Islands. I'm a big fan of the Hawaiian Islands. So think about islands, right, an island chain. And the parts that we see are these, it's the top of the mountains, right, over the ocean.  There's still mountains very so up here, they seem very separate. And as you go deeper, they're still separate. But there's a certain depth that we like to think of in our own selves when we do our deeper work, whether that's meditation or reflection or contemplation. We're going deeper in our consciousness. But ultimately, as with island chains, we are connected by a common ground, a common foundation. And our quest at IONS is to study how do we move deeper and deeper and actually access and tap into that common ground to improve our lives. If we improve our personal lives and our own personal transformation, we can do better in our work worlds, in our communities, in our environment. And that's the mission of IONS, is to actually apply our scientific research behind consciousness and to then translate those findings into practical programs. So for me, I'm a classically trained Harvard MBA.  But my goal is to say, how do we apply what our science team is researching to make it useful for you as leaders? And that's what I want to convey to you today. So this is what we call our science dream team. We actually have, it's very interesting, similar to Eclipse. We are also a staff of 50, headquartered in California. And we have the world's largest multidisciplinary team studying the frontiers of consciousness. And this is our team. Now it seems like everybody is so familiar with Dean. So Dean Raiden, how many of you are familiar with Dean Raiden's work? I've been having people come up and ask me about Dean. We actually have a team of scientists that are looking at consciousness from a biological perspective and how we can improve our health, from neuroscience, from the quantum physics angle. We're even looking now at virtual reality and artificial intelligence. And we just have this fantastic team. So I say, here I am to share with you today, how do I, Claire? As the CEO of Noetic Sciences actually walk my talk. How do I do that? Because every day I have to, I share many of the same challenges that you do when you're at work every day as leaders. I have to manage and develop a team. Take a look at this team. Now they don't know I'm sharing this slide. This was Halloween, Halloween last week in the US. A few members of my management team decided to surprise me. And I won't tell you who they are to embarrass them. But I do, on a day-to-day basis, while holding a Noetic perspective, I have to manage and develop people. I have to ensure a healthy bottom line. And I have to make sure we're optimizing our strategic impact. So how do I hold and balance my own belief in consciousness and those deeper realms, while also saying I've got to run a successful organization? So I do that through a framework I have been creating called Noetic Leadership. And I want to introduce you to Noetic Leadership this morning in the hope that it can help you. It can help you when you go back to your offices, when you go back to your businesses. There are three components of Noetic Leadership. The first one is the mind matters. The second is that our interconnectedness, again that baseline foundation that I showed you in the Island Peaks model, that that matters. And a theme that you heard you're hearing a lot over the past two days is that integrity matters in this.  So why does the mind matter? Now the mind is different than the brain. The mind is what is allowing you to go deeper into those realms that I showed you on that slide. We have to trust that that inner feeling, those inner hunches actually have groundedness and they have meaning. So how many of you have felt you have those moments when you just have a sudden inspiration, you have a gut feeling they call it? How many of you would say you have that on a regular basis? Okay, so almost everybody. That is what we're talking about here, that this is very real. I had this sudden idea, I don't know where it came from. Many of the famous inventors and leaders of our time have come up with their brilliant ideas in a dream and they wake up and you hear stories. I wrote it down and I had to figure out how am I going to implement that. We are trying to research from where is that inspiration coming? So yes, the objective data in our role as leaders, analyzing the evidence, looking at financial reports and so forth is critical, but so are those inner hunches. So just think about this, as humans, this is the sound spectrum, the frequency spectrum of sound. We only as humans hear within these red dotted lines. We are missing everything over here and everything way out over here. And this graph isn't even to scale. It's much, if this would go way out. We are very limited in what we hear. We are also very limited in what we see. So again, between these two lines is all we see. Does that mean that there's nothing over here and there's nothing over here? No. It's just right now as humans were limited. And this is where I want to share a little bit of a personal story to this point of vision because I think it's affected me was that between the ages of about five and through age 16, I was actually legally blind. I had a condition that's very rare of developing cataracts as a child. My mother had had the same condition, so I inherited it from her. I don't know how many of you are familiar with the SAVA Foundation, which is out of, I believe, out of India, where they focus on this type of situation. But in the United States, it's very rare. So what happened is I gradually became very vision limited. I wasn't totally blind, but I was so greatly limited that it affected my vision. I still have in my left eye that problem. But what it was interesting to me was I didn't realize how poorly I saw because it happened so gradually. But what I feel what it led to in the rest of my life was that I began to access other expanded senses. So on a practical sense, I feel my hearing is very, very sharp because I had to develop tricks in school so I could see the bore. I couldn't see what was on the chalkboard. And because it wasn't an official type of blindness, teachers didn't really understand the limitation. So it was one of those things I had to make do in those days. So I wonder sometime because I am somebody who has experiences of inner knowing and I am someone who has had what we call telepathic. Why have I known before someone has died that they're going to die? Or why have I had those moments where I pick up the phone and someone is already on the other end that I was about to call? I wonder sometime if this vision limitation furthered that along. But I share this all with you because the point is we know that if we say, we're not seeing the full sound spectrum, we're not hearing the full sound spectrum, we're not seeing the full vision spectrum. What else are we missing? That's why we investigate this. So as leaders, I say, okay, we have to live in making decisions that balance what we call our objective knowledge with our subjective knowledge. So objective knowledge is what many of you are going to do when you go back to the office tomorrow. You have to look at reports, you're looking at data, you're researching, looking at trends, you're having experiences direct with your staff. That's very objective. The subjective is when you say, what are your own inner, what inspirations are you realizing about your work? What are those, we can call them downloads of information? They're coming from somewhere and they're very real. And I'm going to share with you a couple examples of this right now so that it can be even more real for you. But the point is in noetic leadership, you don't throw away the objective information and say, oh, I'm just going to go with my hunches all the time. Forget what the data says. We can't really do that. Nor can you do the opposite, which is only live in the objective. You're missing a whole range of information about the people you work with, about your clients, about your customers. That's why holding those two in balance is important. The other factor in the mind matters is this piece, we talked a lot, it's come up in conversation yesterday, very much about our belief systems. Do we hold unconscious belief systems and biases that get in the way of our work? This example is literally from my trip here in the past few days in Malaysia, just to give you a real example. This is a club-med advertisement. Now, I am from the part of the United States, it's very cold with very long winters. When I saw this, I thought it was fake. It was an ad in a magazine and I said, what is this snow picture in club-med? Because I've only ever seen club-med be tropical, warm ocean resort. And I said, I didn't even know that club-med would have anything having to do with winter time. And it was so strong that I actually didn't believe it. But obviously it's true, have any of you been to a snow vacation where it's cold? Yes, some of you have. So that just shows, that was one of those real examples for me when I said, I don't believe, I question its authenticity because of my own unconscious belief system. Also similarly, in the mind matters is the importance of using our intention and visualization. This is very real. If you wanna think a bit from a physics perspective, we can think about it as a funneling of energy in the right direction of what we're aspiring to. But I have another story about this. This happened exactly a month ago tomorrow. This is a true story. We were having a management team meeting and IONS is a non-profit organization. And as a non-profit, sometimes the finances get a little tight and I had had a very serious discussion with my management team about some changes we had to make. And they respected that. We wanna have sound finances going forward. And they said, one of my directors raised her hand. She says, you know, Claire, could we do a visualization because it might be good for refocusing our energy going forward. He said, Claire, what would you do if we suddenly received a million dollar donation? I said, oh my gosh, that would be great. That would take care of a lot of things. It would give us some breathing room. So we all went around the room. We said, well, wouldn't that be nice? Okay, that was the end of that conversation. Two days later in why I have this image, I am on a flight from San Francisco to Chicago for a meeting and I get an email from the fundraising director that a million dollar gift has come in. This is no joke. I'm not making this up. I couldn't believe it and I had nobody, I couldn't react on the, I'm sitting on the plane and I'm reading this and I couldn't go crazy. And I had nobody I could call, I was trapped. And it turns out it's true. There is a man who was little known to ions who had decided to make a million dollar gift. Now he's spreading it over four years, but that million dollar gift was just what we needed. So that is a true story. One could say, well, Claire, how'd that happen? I like to think a bit as about aligning, aligning the team's energy. There is real truth to this and that's why we're studying it so we can understand it better. So quickly, and I want to just show you, some people ask about the science on this. One of ION's major scientific areas is using what's called the double slit experiment tool that has been used heavily by Dean Raiden. And I won't go through because we don't have enough time to tell you how exactly it works. But the point is with the double slit in a normal framework, you're shooting photons through two slits and in a normal, when nobody's paying attention to it, oops, I'm gonna go back to that, when nobody's paying attention to the two slits, they tend to form a wave, they exist as a wave. As soon as an experimenter or an observer starts paying attention to this, what happens is the photons exist as tiny particles. Something happens with how the display changes between the original and when somebody's placing their focus on the tool. This is an experiment that has been done thousands and thousands of times and how we interpret this is that there is an effect of directed mental attention. When you focus on something, whether that's in person or it's at a distance. So in Dean Raiden's experiments, he will have people all over the world direct their attention at a specific time of day to this experiment based in California and they will actually see material changes in the outcome of the waves as they get focused into new patterns. This is real and it's the kind of work that we're doing. I share this because people do ask me, Claire, can you tell us a little bit about the science? I'll give another example in a second that I hope is useful to you. So that part is all about our mind and our inner knowing. The second component is about our interconnection and what's interesting for me, for many years I was a consultant working a management consultant in organizations and we do this diagram of what's called the ecosystem and you do a very flat image like this of okay, I'm the leader in the middle and my ecosystem is my staff, my customers, the community, our competitors, okay, that's nice. Well, it turns out it's so insufficient. Our interconnectedness is so much more vast and interwoven.  So it goes from a very flat model to a very multidimensional model. So the fact that I could say I have clients here, I have vendors, I have suppliers, it's not just that they're connected with me or my organization, they're actually connected with each other and a broader community. And what we're discovering is that people are also interconnected at great distances. That distance and time often doesn't matter and this is where you get into quantum entanglement. So those who are familiar with quantum physics know about this phenomenon of quantum entanglement. I like to use that as a metaphor, even though it's also scientifically based, as a metaphor for the effects we have as leaders on our communities and on the world at large. So let's talk about this a little bit. There's another scientific tool called the random number generators. And this has been work that IONS has been involved with through Princeton University. Princeton has taken the lead on this. So this is an esteemed American university conducting these random number generator projects. They're scattered throughout the world and basically what a random number generator is doing is putting out just a random set of zeros and ones and zeros and ones. And they just follow a randomized pattern. But what we're studying is what happens to the pattern during major world events? So I'm just going to show you a couple. This is the chart from the 9-11 attacks in the U.S. And what you can see here is this would have been a normal random line would be hugging this right here. Look what happens at the spikes when the first airline crash happened, when the World Trade Center collapsed. And then when the news really hit people's awareness, look what happened to the pattern with the random number generator. It should have been zigzagging along this line and it spikes way up. The same thing with the terrible earthquake. This is an example of course that has local relevance. Again, look at the red line after, this is the time of the earthquake and the tsunami that happened. Look at that dramatic difference. We don't have time for it now but I will point out that you see a change even before the earthquake happened. So that is raising a lot of questions about predictive abilities. Was there something going on that people were picking up on a tragedy about to happen? That is again for a longer conversation but the point is these random number generators, this is the last one I'll show is the U.S. presidential election. This is in Dean Raiden's new book that just came out. But yeah, you can see when it went, when the announcement was made at midnight, you can see what happened over here. So again, random would be just hugging the line and then you see these great spikes. Now we show this because some people want to see the scientific evidence behind consciousness and our ability to apply this in our world and some people say, hey, I don't need to see the proof but we believe in doing the scientific research which allows us to apply these skills better in our work as leaders and as general citizens of the world. The last part on this realm I'll share is part of a program that I love to deliver in a longer session and it's about energy and again, I love that this is the leadership energy conference because you can appreciate that in our personal selves, we have our own energy centers. Some of you are familiar maybe with the chakra model. Whether you think of it as a metaphor or a biology, there are point of certain energy centers in all of us that are actually moving us in our work and they tend to go from this baseline of our groundedness, our beliefs, our traditions, what we hold through our early part of our lives, working our way up into how we get our work done and how we set and receive grand visions going forward. Now there's a lot to this. The statistical fact I wanna share about energy, I don't know how many of you are aware of the electromagnetic energy of your heart. Your electromagnetic energy of your heart is estimated to be between 50 to 100 times greater than your brain. So what does that mean? That's actually a measurable effect of heart energy. That that's the type of thing we wanna work on as leaders and this is something in my position that I'm keenly aware of how I show up at work, how I show up with my team is they can feel that, you can sense that and it's very important to be aware of that, how you are. Chartres was talking about culture. I believe your personal energy and how you optimize your energy flow is the foundation of the culture that you set in your organization.  The energy you bring to the workplace, it really matters. So again, I'm sharing a lot with you today and I'm gonna have to wrap up so that we can do Q&A but I just wanted to say that I wanted to give you enough to make this useful for you. The third big part and it's been mentioned so much in the conferences about integrity. So instead of repeating what others have said, I'm gonna tell you how I've been using the integrity concept. When I started my position as CEO of IONS a year ago, I set three hallmarks. I decided what is Claire going to be known for so that the staff could know me better and know what's important to me. So I had three. It was integrity, clarity and prosperity. And that integrity point that my own clarity about integrity has helped me so much to make those tough decisions or to be able to say, you know, we might disagree on something, a business decision for the organization, but if I am making my decisions based on what I truly feel is best for IONS and best for our public service mission, it makes it a lot easier because I don't have that feeling of self-questioning. So being clear and confident about your own higher purpose as an organization and for yourself, the fact that using the power of your mind, again, holding integrity to be able to have in those tough moments if a staff person doesn't agree with you to know like you are coming at it from that baseline. And the fact that also it truly helps to unify the team. If you say, you know what, we're making the best decisions we can based on our vision and our mission of an organization, I would love to study and this is something for IONS to do next. The fact that this integrity influence is so powerful, what's the underpinnings of that? It's a feel good thing, but it's more than that. And that's what I'm very intrigued by. I know it's helped me a lot. So those three prongs that again, when you think about consciousness and you think about what we call noetics, inner knowing, to remember that your mind matters, your inner knowing matters, our interconnectedness as a community, as a world matters within your team, within your own ecosystems and that integrity as the foundation is critical because I truly believe that if you didn't approach your work with integrity, you could be feeling you're using your inner knowing all the time, but if it's not for the right purpose, it will not succeed. So that's what I wanna leave with you and to allow Rajiv to give a chance to do Q&A. I hope that this, you could take away a few elements that you can put into practice when you go back to your offices and to know that this is very real and this is what we're committed to studying. Thank you. Thank you.