//// Created by Federico Fuga on 07/09/17.//#ifndef STRONGTYPE_H#define STRONGTYPE_Htemplate<typenameT,typenameTAG>classstrong_type{Tvalue;public:usingBase=T;usingTag=TAG;explicitstrong_type(Tv):value(v){}Tget()const{returnvalue;}};#endif //STRONGTYPE_H
//// Created by Federico Fuga on 07/09/17.//#include<gtest/gtest.h>#include<strongtype.h>#include<type_traits>TEST(StrongType,usage){structIdTag{};usingID=strong_type<int,IdTag>;IDi(10);structValueTag{};usingValue=strong_type<ID::Base,ValueTag>;Valuej(10);static_assert(!std::is_convertible<ID,Value>::value,"ID and values are convertible!");ASSERT_EQ(i.get(),j.get());}
Comments (0)
HTTPSSSH
You can clone a snippet to your computer for local editing.
Learn more.