void somefunc() {do_something_with blabla::a2}
template< typename TEnumType, typename TValueType >
class EnumValues final
{
static_assert( std::is_enum<TEnumType>::value, "The `TEnumType` type have to be enumeration." );
public:
using UnderlyingType = std::underlying_type_t<TEnumType>;
using Values = std::array<TValueType, static_cast<UnderlyingType>( TEnumType::MAX )>;
EnumValues() = default;
EnumValues( const EnumValues& ) = default;
EnumValues( EnumValues&& ) = default;
EnumValues( std::initializer_list<TValueType> values );
EnumValues( const Values& values );
EnumValues( Values&& values );
inline EnumValues& operator = ( cosnt EnumValues& ) = default;
inline EnumValues& operator = ( EnumValues&& ) = default;
inline EnumValues& operator = ( std::initializer_list<TValueType> values );
inline EnumValues& operator = ( const Values& values );
inline EnumValues& operator = ( Values&& values );
inline TValueType& operator [] ( const TEnumType value ) { return m_values[ static_cast<UnderlyingType>( value ) ]; };
inline const TValueType& operator [] ( const TEnumType value ) const { return m_values[ static_cast<UnderlyingType>( value ) ]; };
private:
Values m_values;
};
enum class ValueIndices
{
qqq = 0,
www,
NAX_VALUES
};
using Values = std::array<int32_t, size_t( ValueIndices::MAX_VALUES )>;
Направление пока не важно, хочу делать все и много, а идей нет.
const size_t GetIntersectionsNumber( const std::string& left, const std::string& right )
{
bool char_mask[256] = { 0 };
for( int c : left )
{
char_mask[ c ] = true;
}
size_t intersections = 0;
for( int c : right )
{
intersections += char_mask[ c ];
char_mask[ c ] = false;
}
return intersections;
}
auto my_ptr = std::make_shared<MyType>();
std::map<std::string, std::vector<std::shared_ptr<std::pair<std::string, std::wstring>>>> uber_map;
auto found_item = uber_map.find( "foo" );
auto& out = in;
decltype( auto ) out = in;
Он же сначала копируется при присваивании 'out = in'
а потом еще раз во время ретёрна
vector( std::initializer_list<T> init, const Allocator& alloc = Allocator() );
Objarr var1{ "Строка1", "Строка2", "Строка3" };
Objarr var2{ "Строка1", "Строка2" };
Objarr var3{ "Строка1", "Строка2", "Строка3", "Строка4", "Строка5" };
std::vector<int> temp{ 4, 8, 15, 16, 23, 42 };
Какой такой? :)
Какой формат пути для тебя некорректен и какой корректен?
Подъем привилегий не относится к вопросу и не нужен в пояснении.