1
0
Fork 0
mirror of synced 2024-12-27 00:53:20 -05:00
ultimate-vim/sources_non_forked/vim-snippets/snippets/cpp.snippets
2022-11-21 23:06:50 +08:00

232 lines
4.4 KiB
Text

extends c
## Main
# main()
snippet mainn
int main()
{
${0}
return 0;
}
##
## Preprocessor
# #include <...>
snippet incc
#include <${1:iostream}>
snippet binc
#include <boost/${1:shared_ptr}.hpp>
##
## STL Collections
# std::array
snippet array
std::array<${1:T}, ${2:N}> ${3};
# std::vector
snippet vector
std::vector<${1:T}> ${2};
# std::deque
snippet deque
std::deque<${1:T}> ${2};
# std::forward_list
snippet flist
std::forward_list<${1:T}> ${2};
# std::list
snippet list
std::list<${1:T}> ${2};
# std::set
snippet set
std::set<${1:T}> ${2};
# std::map
snippet map
std::map<${1:Key}, ${2:T}> ${3};
# std::multiset
snippet mset
std::multiset<${1:T}> ${2};
# std::multimap
snippet mmap
std::multimap<${1:Key}, ${2:T}> ${3};
# std::unordered_set
snippet uset
std::unordered_set<${1:T}> ${2};
# std::unordered_map
snippet umap
std::unordered_map<${1:Key}, ${2:T}> ${3};
# std::unordered_multiset
snippet umset
std::unordered_multiset<${1:T}> ${2};
# std::unordered_multimap
snippet ummap
std::unordered_multimap<${1:Key}, ${2:T}> ${3};
# std::stack
snippet stack
std::stack<${1:T}> ${2};
# std::queue
snippet queue
std::queue<${1:T}> ${2};
# std::priority_queue
snippet pqueue
std::priority_queue<${1:T}> ${2};
##
## STL smart pointers
# std::shared_ptr
snippet msp
std::shared_ptr<${1:T}> ${2} = std::make_shared<$1>(${3});
snippet amsp
auto ${1} = std::make_shared<${2:T}>(${3});
# std::unique_ptr
snippet mup
std::unique_ptr<${1:T}> ${2} = std::make_unique<$1>(${3});
snippet amup
auto ${1} = std::make_unique<${2:T}>(${3});
##
## Access Modifiers
# private
snippet pri
private
# protected
snippet pro
protected
# public
snippet pub
public
# friend
snippet fr
friend
# mutable
snippet mu
mutable
##
## Class
# class
snippet cl
/*! \class $1
* \brief ${3:Brief class description}
*
* ${4:Detailed description}
*/
class ${1:`vim_snippets#Filename('$1', 'name')`}
{
public:
$1(${2});
virtual ~$1();
protected:
m_${5}; /*!< ${6:Member description} */
};
# member function implementation
snippet mfun
${4:void} ${1:`vim_snippets#Filename('$1', 'ClassName')`}::${2:memberFunction}(${3}) {
${0}
}
# member function implementation without parameters
snippet dmfun0
/*! \brief ${4:Brief function description here}
*
* ${5:Detailed description}
*
* \return ${6:Return parameter description}
*/
${3:void} ${1:`vim_snippets#Filename('$1', 'ClassName')`}::${2:memberFunction}() {
${0}
}
# member function implementation with one parameter
snippet dmfun1
/*! \brief ${6:Brief function description here}
*
* ${7:Detailed description}
*
* \param $4 ${8:Parameter description}
* \return ${9:Return parameter description}
*/
${5:void} ${1:`vim_snippets#Filename('$1', 'ClassName')`}::${2:memberFunction}(${3:Type} ${4:Parameter}) {
${0}
}
# member function implementation with two parameter
snippet dmfun2
/*! \brief ${8:Brief function description here}
*
* ${9:Detailed description}
*
* \param $4 ${10:Parameter description}
* \param $6 ${11:Parameter description}
* \return ${12:Return parameter description}
*/
${7:void} ${1:`vim_snippets#Filename('$1', 'ClassName')`}::${2:memberFunction}(${3:Type} ${4:Parameter},${5:Type} ${6:Parameter}) {
${0}
}
# namespace
snippet ns
namespace ${1:`vim_snippets#Filename('', 'my')`} {
${0}
} /* namespace $1 */
snippet ans
namespace {
${0}
}
##
## Input/Output
# std::cout
snippet cout
std::cout << ${1} << std::endl;
# std::cin
snippet cin
std::cin >> ${1};
##
## Casts
# static
snippet sca
static_cast<${1:unsigned}>(${2:expr})${3}
# dynamic
snippet dca
dynamic_cast<${1:unsigned}>(${2:expr})${3}
# reinterpret
snippet rca
reinterpret_cast<${1:unsigned}>(${2:expr})${3}
# const
snippet cca
const_cast<${1:unsigned}>(${2:expr})${3}
## Iteration
# for i
snippet fori
for (int ${2:i} = 0; $2 < ${1:count}; $2${3:++}) {
${4}
}
# foreach
snippet fore
for (${1:auto} ${2:i} : ${3:container}) {
${4}
}
# iterator
snippet iter
for (${1:std::vector}<${2:type}>::${3:const_iterator} ${4:i} = ${5:container}.begin(); $4 != $5.end(); ++$4) {
${6}
}
# auto iterator
snippet itera
for (auto ${1:i} = ${2:container}.begin(); $1 != $2.end(); ++$1) {
${3:std::cout << *$1 << std::endl;}
}
##
## Lambdas
# lamda (one line)
snippet ld
[${1}](${2}){${3}};
# lambda (multi-line)
snippet lld
[${1}](${2}){
${3}
};
# snippets exception
snippet try
try {
}catch(${1}) {
}
# auto function
snippet af auto function
auto ${1:name}(${2}) -> ${3:void}
{
${0}
};