What are Copy Elision and Return Value Optimization

Smita Kapse
Updated on 11-Feb-2020 10:36:03

550 Views

Copy elision is an optimization implemented by most compilers to prevent extra (potentially expensive) copies in certain situations. So if you have some code that is creating objects not being used or don't have side effects, examplestruct MyStruct {    MyStruct() {}    MyStruct(const MyStruct&) {       std::cout

Default Type of Hexadecimal Value in MySQL

Jai Janardhan
Updated on 11-Feb-2020 10:35:43

234 Views

As we know that in numeric contexts the hexadecimal values act like integers and in string contexts they act like binary string. It can be understood with the help of the following example,mysql> Select X'5455544F5249414C53504F494E54'; +---------------------------------+ | X'5455544F5249414C53504F494E54' | +---------------------------------+ | TUTORIALSPOINT                  | +---------------------------------+ 1 row in set (0.07 sec)But, if we are talking about default type of hexadecimal value in MySQL, then it is a string.

Use Arrays in C++

Srinivas Gorla
Updated on 11-Feb-2020 10:32:26

394 Views

An array is a series of elements of the same type placed in contiguous memory locations that can be individually referenced by adding an index to a unique identifier. To use an array in C++, you'll need to declare it first, for example, int arr[10];This declares an array of type int of size 10. This can store 10 integers in contiguous memory. To Refer to any of its element, you need to use the array access operator and provide it the index of the element you want to access. The indexing in C++ array start from 0. So in the ... Read More

Profile C++ Code Running in Linux

Vrundesha Joshi
Updated on 11-Feb-2020 10:28:25

1K+ Views

There are many great profiling tools for profiling C++ programs on Linux. The most widely used tool is Valgrind. It is a programming tool for memory debugging, memory leak detection, and profiling. You can use valgrind by passing the binary to it and setting the tool to callgrind. First generate the binary by compiling the program −$ g++ -o hello.cpp hello Now use valgrind to profile it: $ valgrind --tool=callgrind ./helloThis will generate a file called callgrind.out.x. You can read this file using a tool called kcachegrind.If you're using gcc, you can use the inbuilt profiling tool, gprof. You can ... Read More

Elegant Way to Iterate Words in a C++ String

Arjun Thakur
Updated on 11-Feb-2020 10:27:10

2K+ Views

There is no one elegant way to iterate the words of a C/C++ string. The most readable way could be termed as the most elegant for some while the most performant for others. I've listed 2 methods that you can use to achieve this. First way is using a stringstream to read words seperated by spaces. This is a little limited but does the task fairly well if you provide the proper checks. example#include #include #include using namespace std; int main() {     string str("Hello from the dark side");     string tmp;         ... Read More

Rules for Using Underscore in C++ Identifiers

Arjun Thakur
Updated on 11-Feb-2020 10:22:52

2K+ Views

From MSDN docs −Use of two sequential underscore characters ( __ ) at the beginning of an identifier, or a single leading underscore followed by a capital letter, is reserved for C++ implementations in all scopes. You should avoid using one leading underscore followed by a lowercase letter for names with file scope because of possible conflicts with current or future reserved identifiers.So you should avoid using names like −__foo, __FOO, _FOOAnd names like the following should not be used in the global namespace −_foo, _barOther than this, there are some more prefixes like LC_, SIG_, and suffixes like _t ... Read More

Access Local Variable Memory Outside Its Scope in C/C++

Rishi Rathor
Updated on 11-Feb-2020 10:20:27

210 Views

Let us look at an example where you MIGHT be able to access a local variable's memory outside its scope.Example#include int* foo() {    int x = 3;    return &x; } int main() {    int* address = foo();    cout

C++ Templates Implementation in Header Files

Ramu Prasad
Updated on 11-Feb-2020 10:14:53

908 Views

When you instantiate a template in C++, the compiler creates a new class. This class has all the places where you placed the template arguments replaced with the actual argument you pass to it when using it. For example −template class MyClass {    T foo;    T myMethod(T arg1, T arg2) {       // Impl    } };And somewhere in your program use this class, MyClass x;The compiler creates a new class upon encountering this for every type argument you pass it. For example, if you created 3 objects with different template arguments you'll get 3 classes, ... Read More

Differences Between a Static Block and a Constructor in Java

raja
Updated on 11-Feb-2020 10:10:35

2K+ Views

Static blockThe static blocks are executed at the time of class loading.The static blocks are executed before running the main () method.The static blocks don't have any name in its prototype.If we want any logic that needs to be executed at the time of class loading that logic needs to placed inside the static block so that it will be executed at the time of class loading.Syntaxstatic {    //some statements }ExampleLive Demopublic class StaticBlockTest {    static {       System.out.println("Static Block!");    }    public static void main(String args[]) {       System.out.println("Welcome to Tutorials Point!");    } }OutputStatic Block! ... Read More

What are Global Variables in C++

Lakshmi Srinivas
Updated on 11-Feb-2020 09:57:02

8K+ Views

Global variables are defined outside of all the functions, usually on top of the program. The global variables will hold their value throughout the lifetime of your program.A global variable can be accessed by any function. That is, a global variable is available for use throughout your entire program after its declaration. Example#include using namespace std; // Global variable declaration: int g; int main () {    // Local variable declaration:    int a, b;    a = 10;    b = 20;    g = a + b;    cout

Advertisements