#affectivecpp 검색 결과

Item 71: To save memory, re-use function parameters as local variables. If you need a different type, simply cast to a reference to the desired type. (Thanks @RECURSIVE_NMI) #cplusplus #cpp #affectivecpp

AffectiveCpp's tweet image. Item 71: To save memory, re-use function parameters as local variables. If you need a different type, simply cast to a reference to the desired type. (Thanks @RECURSIVE_NMI) #cplusplus #cpp #affectivecpp

Item 62: Declare all your local variables at the top of the function so the compiler can allocate them next to each other. Much more cache friendly! #cplusplus #cpp #affectivecpp


Item 66: Remember to periodically call std::flush to trigger the garbage collector. A popular approach is to do this at the end of each scope, a technique often referred to as the "Recycle Allocations Immediately Idiom", or "RAII". #cplusplus #cpp #affectivecpp


Item 63: To avoid dangling references when you return references to local variables, make sure to only return classes without destructors, as these will not be destroyed at the end of the function. #cplusplus #cpp #affectivecpp


Item 80: A typical source of error is (transitively) including the same header file in many compilation units. This is an ODR violation. Instead, make a separate copy of that header file for each source file. #cplusplus #cpp #affectivecpp


Item 70: Avoid expensive toupper / tolower functions, use bitwise operators instead. Lowercase: `'A' | ' ' == 'a'`. Uppercase: `'a' & '_' == 'A'`. Switch case: `'A' ^ ' ' == 'a'` (Thanks @ilpropheta) #cplusplus #cpp #affectivecpp

Something new learned today. #programming

ilpropheta's tweet image. Something new learned today.
#programming


Further confirmed by this idiom called SFINAE: std::flush Intermittently Normalizes Any Errors ! #affectivecpp #cppsecrets #programmingmemes

Item 66: Remember to periodically call std::flush to trigger the garbage collector. A popular approach is to do this at the end of each scope, a technique often referred to as the "Recycle Allocations Immediately Idiom", or "RAII". #cplusplus #cpp #affectivecpp



For maximum effectiveness it is recommended to reinterpret_cast the results in to the desired memory layout to improve performance #affectivecpp


Item 61: Always define a destructor for your classes, or your objects won't be cleaned up. If there's no work to do in the destructor, just give it an empty body. #cplusplus #cpp #affectivecpp


Item 79: Choosing the right data structure is critical. Is memset too slow? Consider memunordered_set instead, to avoid the red-black tree in favor of hashing. See also memmap for key/value, mempriority_queue, memstack, etc. (thanks @jfbastien) #cplusplus #cpp #affectivecpp


Item 68: As of C++20, `std::tie` has a new shorthand, the spaceship operator. It was named after Darth Vader's Tie Fighter: `<=>` #cplusplus #cpp #affectivecpp

이 트윗은 더 이상 사용할 수 없습니다.

Item 78: With multiply wrapped objects, such as unique_ptr to optional, if you want to access a member of wrapped object, use the long arrow operator. Instead of v.get()->value().member, do v--->member. @ivan_cukic explains: cukic.co/2017/07/12/the… #cplusplus #cpp #affectivecpp


Item 74: std::vector<bool> is widely regarded as a bad idea. Instead, prefer using std::basic_string<bool>, which both behaves as an actual container, avoids proxy objects, and gives you a small vector optimization for free! (Thanks @horenmar_ctu) #cplusplus #cpp #affectivecpp

As we all know, std::vector<bool> keeps causing endless issues. But did you know you can use std::basic_string<bool> instead, avoiding the terrible proxy objects? You even get a small vector optimization for free. 😈



Item 64: If you want to move a value, remember to use std::move, but only for the first move. If you want to move it again you need to use std::remove. (Thanks @olafurw) #cplusplus #cpp #affectivecpp

If you want to move a value, remember to use std::move, but only for the first move. If you want to move it again you need to use std::remove @AffectiveCpp



Item 77: The difference between char and wchar_t is that char is for narrow characters, and wchar_t is for wide characters. Store letters like i and j in a char, and letters like m and w in a wchar_t. (Thanks @chrisoldwood) #cplusplus #cpp #affectivecpp

The difference between char and wchar_t in C++ is that char is for narrow characters and wchar_t is for wide characters. So you’d store letters like i, l, and t in a char but M and W in a wchar_t…



Item 65: If you want to ignore a function parameter, simply pass std::ignore as the argument: fnc(3, 4, std::ignore, “whatever”); (Thanks @hankadusikova) #cplusplus #cpp #affectivecpp

이 트윗은 더 이상 사용할 수 없습니다.

Item 75: For owning pointers, use `int *variable` (star next to the variable you own), and for non-owning pointers use `int* variable` (star away from the variable) (Thanks @olafurw) #cplusplus #cpp #affectivecpp

int* variable; For non owning pointers, since the * is far away from your variable (which you own) int *variable; Then for owning pointers. @AffectiveCpp (ps. don't do this, use smart pointers)



Item 73: If you experience seemingly random crashes and bugs in your software, simply ship it with -O0 to reduce the failure rate. (Thanks @Cor3ntin) #cplusplus #cpp #affectivecpp

이 트윗은 더 이상 사용할 수 없습니다.

Item 76: Can't remember all the different casts? Replace them all by the more powerful unicorn_cast: template <typename T, typename U> T unicorn_cast(U&& u) { void* addr = &u; return *static_cast<T*>(addr); } (Thanks @bjorn_fahller) #cplusplus #cpp #affectivecpp

이 트윗은 더 이상 사용할 수 없습니다.

Item 80: A typical source of error is (transitively) including the same header file in many compilation units. This is an ODR violation. Instead, make a separate copy of that header file for each source file. #cplusplus #cpp #affectivecpp


Item 79: Choosing the right data structure is critical. Is memset too slow? Consider memunordered_set instead, to avoid the red-black tree in favor of hashing. See also memmap for key/value, mempriority_queue, memstack, etc. (thanks @jfbastien) #cplusplus #cpp #affectivecpp


Item 78: With multiply wrapped objects, such as unique_ptr to optional, if you want to access a member of wrapped object, use the long arrow operator. Instead of v.get()->value().member, do v--->member. @ivan_cukic explains: cukic.co/2017/07/12/the… #cplusplus #cpp #affectivecpp


Item 77: The difference between char and wchar_t is that char is for narrow characters, and wchar_t is for wide characters. Store letters like i and j in a char, and letters like m and w in a wchar_t. (Thanks @chrisoldwood) #cplusplus #cpp #affectivecpp

The difference between char and wchar_t in C++ is that char is for narrow characters and wchar_t is for wide characters. So you’d store letters like i, l, and t in a char but M and W in a wchar_t…



Item 76: Can't remember all the different casts? Replace them all by the more powerful unicorn_cast: template <typename T, typename U> T unicorn_cast(U&& u) { void* addr = &u; return *static_cast<T*>(addr); } (Thanks @bjorn_fahller) #cplusplus #cpp #affectivecpp

이 트윗은 더 이상 사용할 수 없습니다.

Item 75: For owning pointers, use `int *variable` (star next to the variable you own), and for non-owning pointers use `int* variable` (star away from the variable) (Thanks @olafurw) #cplusplus #cpp #affectivecpp

int* variable; For non owning pointers, since the * is far away from your variable (which you own) int *variable; Then for owning pointers. @AffectiveCpp (ps. don't do this, use smart pointers)



Item 74: std::vector<bool> is widely regarded as a bad idea. Instead, prefer using std::basic_string<bool>, which both behaves as an actual container, avoids proxy objects, and gives you a small vector optimization for free! (Thanks @horenmar_ctu) #cplusplus #cpp #affectivecpp

As we all know, std::vector<bool> keeps causing endless issues. But did you know you can use std::basic_string<bool> instead, avoiding the terrible proxy objects? You even get a small vector optimization for free. 😈



Item 73: If you experience seemingly random crashes and bugs in your software, simply ship it with -O0 to reduce the failure rate. (Thanks @Cor3ntin) #cplusplus #cpp #affectivecpp

이 트윗은 더 이상 사용할 수 없습니다.

Item 72: Stick to using single letter identifiers only, this avoids almost all naming disputes. (Thanks @bjorn_fahller) #cplusplus #cpp #affectivecpp

이 트윗은 더 이상 사용할 수 없습니다.

Item 71: To save memory, re-use function parameters as local variables. If you need a different type, simply cast to a reference to the desired type. (Thanks @RECURSIVE_NMI) #cplusplus #cpp #affectivecpp

AffectiveCpp's tweet image. Item 71: To save memory, re-use function parameters as local variables. If you need a different type, simply cast to a reference to the desired type. (Thanks @RECURSIVE_NMI) #cplusplus #cpp #affectivecpp

For maximum effectiveness it is recommended to reinterpret_cast the results in to the desired memory layout to improve performance #affectivecpp


Item 70: Avoid expensive toupper / tolower functions, use bitwise operators instead. Lowercase: `'A' | ' ' == 'a'`. Uppercase: `'a' & '_' == 'A'`. Switch case: `'A' ^ ' ' == 'a'` (Thanks @ilpropheta) #cplusplus #cpp #affectivecpp

Something new learned today. #programming

ilpropheta's tweet image. Something new learned today.
#programming


Item 69: Avoid default arguments and complicated lookup, be explicit! Example: Instead of `std::cout << std::endl`, do `std::cout.basic_ostream<char, std::char_traits<char>>::operator<<(std::endl<char, std::char_traits<char>>);` (Thanks @vzverovich) #cplusplus #cpp #affectivecpp

std::cout.basic_ostream<char, std::char_traits<char>>::operator<<(std::endl<char, std::char_traits<char>>);



Item 68: As of C++20, `std::tie` has a new shorthand, the spaceship operator. It was named after Darth Vader's Tie Fighter: `<=>` #cplusplus #cpp #affectivecpp

이 트윗은 더 이상 사용할 수 없습니다.

Item 67: If an exception occurs which turns out to be a false positive, re-throw it as std::bad_exception to let the system know: `catch(std::exception &e) { throw std::bad_exception(e); }` (Thanks @olafurw) #cplusplus #cpp #affectivecpp

If you have any issues with your C++ code, throw a std::future_error. This will allow your future self to deal with the problem Also if there's an exception that is misbehaving then you can always throw a std::bad_exception and the OS will take care of it for you @AffectiveCpp



Further confirmed by this idiom called SFINAE: std::flush Intermittently Normalizes Any Errors ! #affectivecpp #cppsecrets


Further confirmed by this idiom called SFINAE: std::flush Intermittently Normalizes Any Errors ! #affectivecpp #cppsecrets #programmingmemes

Item 66: Remember to periodically call std::flush to trigger the garbage collector. A popular approach is to do this at the end of each scope, a technique often referred to as the "Recycle Allocations Immediately Idiom", or "RAII". #cplusplus #cpp #affectivecpp



Item 66: Remember to periodically call std::flush to trigger the garbage collector. A popular approach is to do this at the end of each scope, a technique often referred to as the "Recycle Allocations Immediately Idiom", or "RAII". #cplusplus #cpp #affectivecpp


Item 65: If you want to ignore a function parameter, simply pass std::ignore as the argument: fnc(3, 4, std::ignore, “whatever”); (Thanks @hankadusikova) #cplusplus #cpp #affectivecpp

이 트윗은 더 이상 사용할 수 없습니다.

Item 64: If you want to move a value, remember to use std::move, but only for the first move. If you want to move it again you need to use std::remove. (Thanks @olafurw) #cplusplus #cpp #affectivecpp

If you want to move a value, remember to use std::move, but only for the first move. If you want to move it again you need to use std::remove @AffectiveCpp



Item33: Use this trick to let the C++ runtime know which function arguments are really required. #cplusplus #cpp #affectivecpp (Thanks, @tmr232)

AffectiveCpp's tweet image. Item33: Use this trick to let the C++ runtime know which function arguments are really required.
#cplusplus #cpp #affectivecpp (Thanks, @tmr232)

Item 71: To save memory, re-use function parameters as local variables. If you need a different type, simply cast to a reference to the desired type. (Thanks @RECURSIVE_NMI) #cplusplus #cpp #affectivecpp

AffectiveCpp's tweet image. Item 71: To save memory, re-use function parameters as local variables. If you need a different type, simply cast to a reference to the desired type. (Thanks @RECURSIVE_NMI) #cplusplus #cpp #affectivecpp

Item 31: Make your code more visual and intuitive using Multi-Dimensional Analog Literals eelis.net/C++/analoglite… (Thanks for the tip @AdiShavit) #cplusplus #cpp #affectivecpp

AffectiveCpp's tweet image. Item 31: Make your code more visual and intuitive using Multi-Dimensional Analog Literals eelis.net/C++/analoglite…  (Thanks for the tip @AdiShavit) #cplusplus #cpp #affectivecpp

Loading...

Something went wrong.


Something went wrong.


United States Trends