Idiomatic way to prevent slicing? The 2019 Stack Overflow Developer Survey Results Are InForce function to be called only with specific typesWhat's the best way to trim std::string?What is object slicing?What's the point of g++ -Wreorder?Easiest way to convert int to string in C++Does the C++ spec allow an instance of a non-virtual class to include memory for a vtable pointer?capture variables inside of subclass?Detecting if a type can be derived from in C++C++ overload function by return typeIs using inline classes inside a function permitted to be used as template types?Short-circuit evaluation and assignment in C++

What is the best strategy for white in this position?

CiviEvent: Public link for events of a specific type

Manuscript was "unsubmitted" because the manuscript was deposited in Arxiv Preprints

Limit to 0 ambiguity

What does Linus Torvalds mean when he says that Git "never ever" tracks a file?

How is radar separation assured between primary and secondary targets?

Falsification in Math vs Science

Inline version of a function returns different value than non-inline version

JSON.serialize: is it possible to suppress null values of a map?

Geography at the pixel level

Realistic Alternatives to Dust: What Else Could Feed a Plankton Bloom?

Why is the maximum length of OpenWrt’s root password 8 characters?

Should I use my personal or workplace e-mail when registering to external websites for work purpose?

Deadlock Graph and Interpretation, solution to avoid

How come people say “Would of”?

Why is my p-value correlated to difference between means in two sample tests?

Time travel alters history but people keep saying nothing's changed

What tool would a Roman-age civilization have to grind silver and other metals into dust?

Is three citations per paragraph excessive for undergraduate research paper?

Why do UK politicians seemingly ignore opinion polls on Brexit?

Can the Protection from Evil and Good spell be used on the caster?

Is "plugging out" electronic devices an American expression?

Is an up-to-date browser secure on an out-of-date OS?

Patience, young "Padovan"



Idiomatic way to prevent slicing?



The 2019 Stack Overflow Developer Survey Results Are InForce function to be called only with specific typesWhat's the best way to trim std::string?What is object slicing?What's the point of g++ -Wreorder?Easiest way to convert int to string in C++Does the C++ spec allow an instance of a non-virtual class to include memory for a vtable pointer?capture variables inside of subclass?Detecting if a type can be derived from in C++C++ overload function by return typeIs using inline classes inside a function permitted to be used as template types?Short-circuit evaluation and assignment in C++



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








10















Sometimes it can be an annoyance that c++ defaults to allow slicing. For example



#include <iostream>
struct foo int a; ;
struct bar : foo int b; ;

int main()
bar x1,2;
foo y = x; // <- I dont want this to compile!



This compiles and runs as expected! Though, what if I dont want to enable slicing?



What is the idomatic way to write foo such that one cannot slice instances of any derived class?










share|improve this question






























    10















    Sometimes it can be an annoyance that c++ defaults to allow slicing. For example



    #include <iostream>
    struct foo int a; ;
    struct bar : foo int b; ;

    int main()
    bar x1,2;
    foo y = x; // <- I dont want this to compile!



    This compiles and runs as expected! Though, what if I dont want to enable slicing?



    What is the idomatic way to write foo such that one cannot slice instances of any derived class?










    share|improve this question


























      10












      10








      10


      3






      Sometimes it can be an annoyance that c++ defaults to allow slicing. For example



      #include <iostream>
      struct foo int a; ;
      struct bar : foo int b; ;

      int main()
      bar x1,2;
      foo y = x; // <- I dont want this to compile!



      This compiles and runs as expected! Though, what if I dont want to enable slicing?



      What is the idomatic way to write foo such that one cannot slice instances of any derived class?










      share|improve this question
















      Sometimes it can be an annoyance that c++ defaults to allow slicing. For example



      #include <iostream>
      struct foo int a; ;
      struct bar : foo int b; ;

      int main()
      bar x1,2;
      foo y = x; // <- I dont want this to compile!



      This compiles and runs as expected! Though, what if I dont want to enable slicing?



      What is the idomatic way to write foo such that one cannot slice instances of any derived class?







      c++ inheritance object-slicing






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 8 hours ago









      rrauenza

      3,55921835




      3,55921835










      asked 11 hours ago









      user463035818user463035818

      18.8k42970




      18.8k42970






















          3 Answers
          3






          active

          oldest

          votes


















          13














          I'm not sure if there is a named idiom for it but you can add a deleted function to the overload set that is a better match then the base classes slicing operations. If you change foo to



          struct foo 

          int a;
          foo() = default; // you have to add this because of the template constructor

          template<typename T>
          foo(const T&) = delete; // error trying to copy anything but a foo

          template<typename T>
          foo& operator=(const T&) = delete; // error assigning anything else but a foo
          ;


          then you can only ever copy construct or copy assign a foo to foo. Any other type will pick the function template and you'll get an error about using a deleted function. This does mean that your class, and the classes that use it can no longer be an aggregate though. Since the members that are added are templates, they are not considered copy constructors or copy assignment operators so you'll get the default copy and move constructors and assignment operators.






          share|improve this answer

























          • Note that this doesn't prevent explicit slicing like this: foo y = static_cast<foo&>(x);. That said, perhaps it's not a problem to OP.

            – eerorika
            10 hours ago











          • if I understand correctly this is a nice way to prevent implicit conversions for function parameters in general

            – user463035818
            10 hours ago






          • 1





            @user463035818 Yep. I've been using it since I've asked that Q.

            – NathanOliver
            10 hours ago






          • 3





            I look at it as reverse SFINAE. You make the overloads you want to compile, and then add a deleted template stopping everything else.

            – NathanOliver
            10 hours ago



















          5














          Since 2011, the idiomatic way has been to use auto:



          #include <iostream>
          struct foo int a; ;
          struct bar : foo int b; ;

          int main()
          bar x1,2;
          auto y = x; // <- y is a bar



          If you wish to actively prevent slicing, there are a number of ways:



          Usually the most preferable way, unless you specifically need inheritance (you often don't) is to use encapsulation:



          #include <iostream>

          struct foo int a; ;
          struct bar

          bar(int a, int b)
          : foo_(a)
          , b(b)


          int b;

          int get_a() const return foo_.a;

          private:
          foo foo_;
          ;

          int main()
          bar x1,2;
          // foo y = x; // <- does not compile




          Another more specialised way might be to alter the permissions around copy operators:



          #include <iostream>

          struct foo
          int a;
          protected:
          foo(foo const&) = default;
          foo(foo&&) = default;
          foo& operator=(foo const&) = default;
          foo& operator=(foo&&) = default;

          ;

          struct bar : foo

          bar(int a, int b)
          : fooa, bb


          int b;
          ;

          int main()
          auto x = bar (1,2);
          // foo y = x; // <- does not compile






          share|improve this answer






























            3














            You can prevent the base from being copied outside of member functions of derived classes and the base itself by declaring the copy constructor protected:



            struct foo 
            // ...
            protected:
            foo(foo&) = default;
            ;





            share|improve this answer


















            • 4





              but then I cannot copy foos anymore :( I'd like to prevent only copying a bar to a foo if possible

              – user463035818
              11 hours ago











            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55600025%2fidiomatic-way-to-prevent-slicing%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            3 Answers
            3






            active

            oldest

            votes








            3 Answers
            3






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            13














            I'm not sure if there is a named idiom for it but you can add a deleted function to the overload set that is a better match then the base classes slicing operations. If you change foo to



            struct foo 

            int a;
            foo() = default; // you have to add this because of the template constructor

            template<typename T>
            foo(const T&) = delete; // error trying to copy anything but a foo

            template<typename T>
            foo& operator=(const T&) = delete; // error assigning anything else but a foo
            ;


            then you can only ever copy construct or copy assign a foo to foo. Any other type will pick the function template and you'll get an error about using a deleted function. This does mean that your class, and the classes that use it can no longer be an aggregate though. Since the members that are added are templates, they are not considered copy constructors or copy assignment operators so you'll get the default copy and move constructors and assignment operators.






            share|improve this answer

























            • Note that this doesn't prevent explicit slicing like this: foo y = static_cast<foo&>(x);. That said, perhaps it's not a problem to OP.

              – eerorika
              10 hours ago











            • if I understand correctly this is a nice way to prevent implicit conversions for function parameters in general

              – user463035818
              10 hours ago






            • 1





              @user463035818 Yep. I've been using it since I've asked that Q.

              – NathanOliver
              10 hours ago






            • 3





              I look at it as reverse SFINAE. You make the overloads you want to compile, and then add a deleted template stopping everything else.

              – NathanOliver
              10 hours ago
















            13














            I'm not sure if there is a named idiom for it but you can add a deleted function to the overload set that is a better match then the base classes slicing operations. If you change foo to



            struct foo 

            int a;
            foo() = default; // you have to add this because of the template constructor

            template<typename T>
            foo(const T&) = delete; // error trying to copy anything but a foo

            template<typename T>
            foo& operator=(const T&) = delete; // error assigning anything else but a foo
            ;


            then you can only ever copy construct or copy assign a foo to foo. Any other type will pick the function template and you'll get an error about using a deleted function. This does mean that your class, and the classes that use it can no longer be an aggregate though. Since the members that are added are templates, they are not considered copy constructors or copy assignment operators so you'll get the default copy and move constructors and assignment operators.






            share|improve this answer

























            • Note that this doesn't prevent explicit slicing like this: foo y = static_cast<foo&>(x);. That said, perhaps it's not a problem to OP.

              – eerorika
              10 hours ago











            • if I understand correctly this is a nice way to prevent implicit conversions for function parameters in general

              – user463035818
              10 hours ago






            • 1





              @user463035818 Yep. I've been using it since I've asked that Q.

              – NathanOliver
              10 hours ago






            • 3





              I look at it as reverse SFINAE. You make the overloads you want to compile, and then add a deleted template stopping everything else.

              – NathanOliver
              10 hours ago














            13












            13








            13







            I'm not sure if there is a named idiom for it but you can add a deleted function to the overload set that is a better match then the base classes slicing operations. If you change foo to



            struct foo 

            int a;
            foo() = default; // you have to add this because of the template constructor

            template<typename T>
            foo(const T&) = delete; // error trying to copy anything but a foo

            template<typename T>
            foo& operator=(const T&) = delete; // error assigning anything else but a foo
            ;


            then you can only ever copy construct or copy assign a foo to foo. Any other type will pick the function template and you'll get an error about using a deleted function. This does mean that your class, and the classes that use it can no longer be an aggregate though. Since the members that are added are templates, they are not considered copy constructors or copy assignment operators so you'll get the default copy and move constructors and assignment operators.






            share|improve this answer















            I'm not sure if there is a named idiom for it but you can add a deleted function to the overload set that is a better match then the base classes slicing operations. If you change foo to



            struct foo 

            int a;
            foo() = default; // you have to add this because of the template constructor

            template<typename T>
            foo(const T&) = delete; // error trying to copy anything but a foo

            template<typename T>
            foo& operator=(const T&) = delete; // error assigning anything else but a foo
            ;


            then you can only ever copy construct or copy assign a foo to foo. Any other type will pick the function template and you'll get an error about using a deleted function. This does mean that your class, and the classes that use it can no longer be an aggregate though. Since the members that are added are templates, they are not considered copy constructors or copy assignment operators so you'll get the default copy and move constructors and assignment operators.







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited 10 hours ago

























            answered 11 hours ago









            NathanOliverNathanOliver

            98.5k16138218




            98.5k16138218












            • Note that this doesn't prevent explicit slicing like this: foo y = static_cast<foo&>(x);. That said, perhaps it's not a problem to OP.

              – eerorika
              10 hours ago











            • if I understand correctly this is a nice way to prevent implicit conversions for function parameters in general

              – user463035818
              10 hours ago






            • 1





              @user463035818 Yep. I've been using it since I've asked that Q.

              – NathanOliver
              10 hours ago






            • 3





              I look at it as reverse SFINAE. You make the overloads you want to compile, and then add a deleted template stopping everything else.

              – NathanOliver
              10 hours ago


















            • Note that this doesn't prevent explicit slicing like this: foo y = static_cast<foo&>(x);. That said, perhaps it's not a problem to OP.

              – eerorika
              10 hours ago











            • if I understand correctly this is a nice way to prevent implicit conversions for function parameters in general

              – user463035818
              10 hours ago






            • 1





              @user463035818 Yep. I've been using it since I've asked that Q.

              – NathanOliver
              10 hours ago






            • 3





              I look at it as reverse SFINAE. You make the overloads you want to compile, and then add a deleted template stopping everything else.

              – NathanOliver
              10 hours ago

















            Note that this doesn't prevent explicit slicing like this: foo y = static_cast<foo&>(x);. That said, perhaps it's not a problem to OP.

            – eerorika
            10 hours ago





            Note that this doesn't prevent explicit slicing like this: foo y = static_cast<foo&>(x);. That said, perhaps it's not a problem to OP.

            – eerorika
            10 hours ago













            if I understand correctly this is a nice way to prevent implicit conversions for function parameters in general

            – user463035818
            10 hours ago





            if I understand correctly this is a nice way to prevent implicit conversions for function parameters in general

            – user463035818
            10 hours ago




            1




            1





            @user463035818 Yep. I've been using it since I've asked that Q.

            – NathanOliver
            10 hours ago





            @user463035818 Yep. I've been using it since I've asked that Q.

            – NathanOliver
            10 hours ago




            3




            3





            I look at it as reverse SFINAE. You make the overloads you want to compile, and then add a deleted template stopping everything else.

            – NathanOliver
            10 hours ago






            I look at it as reverse SFINAE. You make the overloads you want to compile, and then add a deleted template stopping everything else.

            – NathanOliver
            10 hours ago














            5














            Since 2011, the idiomatic way has been to use auto:



            #include <iostream>
            struct foo int a; ;
            struct bar : foo int b; ;

            int main()
            bar x1,2;
            auto y = x; // <- y is a bar



            If you wish to actively prevent slicing, there are a number of ways:



            Usually the most preferable way, unless you specifically need inheritance (you often don't) is to use encapsulation:



            #include <iostream>

            struct foo int a; ;
            struct bar

            bar(int a, int b)
            : foo_(a)
            , b(b)


            int b;

            int get_a() const return foo_.a;

            private:
            foo foo_;
            ;

            int main()
            bar x1,2;
            // foo y = x; // <- does not compile




            Another more specialised way might be to alter the permissions around copy operators:



            #include <iostream>

            struct foo
            int a;
            protected:
            foo(foo const&) = default;
            foo(foo&&) = default;
            foo& operator=(foo const&) = default;
            foo& operator=(foo&&) = default;

            ;

            struct bar : foo

            bar(int a, int b)
            : fooa, bb


            int b;
            ;

            int main()
            auto x = bar (1,2);
            // foo y = x; // <- does not compile






            share|improve this answer



























              5














              Since 2011, the idiomatic way has been to use auto:



              #include <iostream>
              struct foo int a; ;
              struct bar : foo int b; ;

              int main()
              bar x1,2;
              auto y = x; // <- y is a bar



              If you wish to actively prevent slicing, there are a number of ways:



              Usually the most preferable way, unless you specifically need inheritance (you often don't) is to use encapsulation:



              #include <iostream>

              struct foo int a; ;
              struct bar

              bar(int a, int b)
              : foo_(a)
              , b(b)


              int b;

              int get_a() const return foo_.a;

              private:
              foo foo_;
              ;

              int main()
              bar x1,2;
              // foo y = x; // <- does not compile




              Another more specialised way might be to alter the permissions around copy operators:



              #include <iostream>

              struct foo
              int a;
              protected:
              foo(foo const&) = default;
              foo(foo&&) = default;
              foo& operator=(foo const&) = default;
              foo& operator=(foo&&) = default;

              ;

              struct bar : foo

              bar(int a, int b)
              : fooa, bb


              int b;
              ;

              int main()
              auto x = bar (1,2);
              // foo y = x; // <- does not compile






              share|improve this answer

























                5












                5








                5







                Since 2011, the idiomatic way has been to use auto:



                #include <iostream>
                struct foo int a; ;
                struct bar : foo int b; ;

                int main()
                bar x1,2;
                auto y = x; // <- y is a bar



                If you wish to actively prevent slicing, there are a number of ways:



                Usually the most preferable way, unless you specifically need inheritance (you often don't) is to use encapsulation:



                #include <iostream>

                struct foo int a; ;
                struct bar

                bar(int a, int b)
                : foo_(a)
                , b(b)


                int b;

                int get_a() const return foo_.a;

                private:
                foo foo_;
                ;

                int main()
                bar x1,2;
                // foo y = x; // <- does not compile




                Another more specialised way might be to alter the permissions around copy operators:



                #include <iostream>

                struct foo
                int a;
                protected:
                foo(foo const&) = default;
                foo(foo&&) = default;
                foo& operator=(foo const&) = default;
                foo& operator=(foo&&) = default;

                ;

                struct bar : foo

                bar(int a, int b)
                : fooa, bb


                int b;
                ;

                int main()
                auto x = bar (1,2);
                // foo y = x; // <- does not compile






                share|improve this answer













                Since 2011, the idiomatic way has been to use auto:



                #include <iostream>
                struct foo int a; ;
                struct bar : foo int b; ;

                int main()
                bar x1,2;
                auto y = x; // <- y is a bar



                If you wish to actively prevent slicing, there are a number of ways:



                Usually the most preferable way, unless you specifically need inheritance (you often don't) is to use encapsulation:



                #include <iostream>

                struct foo int a; ;
                struct bar

                bar(int a, int b)
                : foo_(a)
                , b(b)


                int b;

                int get_a() const return foo_.a;

                private:
                foo foo_;
                ;

                int main()
                bar x1,2;
                // foo y = x; // <- does not compile




                Another more specialised way might be to alter the permissions around copy operators:



                #include <iostream>

                struct foo
                int a;
                protected:
                foo(foo const&) = default;
                foo(foo&&) = default;
                foo& operator=(foo const&) = default;
                foo& operator=(foo&&) = default;

                ;

                struct bar : foo

                bar(int a, int b)
                : fooa, bb


                int b;
                ;

                int main()
                auto x = bar (1,2);
                // foo y = x; // <- does not compile







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 11 hours ago









                Richard HodgesRichard Hodges

                57k658105




                57k658105





















                    3














                    You can prevent the base from being copied outside of member functions of derived classes and the base itself by declaring the copy constructor protected:



                    struct foo 
                    // ...
                    protected:
                    foo(foo&) = default;
                    ;





                    share|improve this answer


















                    • 4





                      but then I cannot copy foos anymore :( I'd like to prevent only copying a bar to a foo if possible

                      – user463035818
                      11 hours ago















                    3














                    You can prevent the base from being copied outside of member functions of derived classes and the base itself by declaring the copy constructor protected:



                    struct foo 
                    // ...
                    protected:
                    foo(foo&) = default;
                    ;





                    share|improve this answer


















                    • 4





                      but then I cannot copy foos anymore :( I'd like to prevent only copying a bar to a foo if possible

                      – user463035818
                      11 hours ago













                    3












                    3








                    3







                    You can prevent the base from being copied outside of member functions of derived classes and the base itself by declaring the copy constructor protected:



                    struct foo 
                    // ...
                    protected:
                    foo(foo&) = default;
                    ;





                    share|improve this answer













                    You can prevent the base from being copied outside of member functions of derived classes and the base itself by declaring the copy constructor protected:



                    struct foo 
                    // ...
                    protected:
                    foo(foo&) = default;
                    ;






                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered 11 hours ago









                    eerorikaeerorika

                    89.8k664136




                    89.8k664136







                    • 4





                      but then I cannot copy foos anymore :( I'd like to prevent only copying a bar to a foo if possible

                      – user463035818
                      11 hours ago












                    • 4





                      but then I cannot copy foos anymore :( I'd like to prevent only copying a bar to a foo if possible

                      – user463035818
                      11 hours ago







                    4




                    4





                    but then I cannot copy foos anymore :( I'd like to prevent only copying a bar to a foo if possible

                    – user463035818
                    11 hours ago





                    but then I cannot copy foos anymore :( I'd like to prevent only copying a bar to a foo if possible

                    – user463035818
                    11 hours ago

















                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55600025%2fidiomatic-way-to-prevent-slicing%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Францішак Багушэвіч Змест Сям'я | Біяграфія | Творчасць | Мова Багушэвіча | Ацэнкі дзейнасці | Цікавыя факты | Спадчына | Выбраная бібліяграфія | Ушанаванне памяці | У філатэліі | Зноскі | Літаратура | Спасылкі | НавігацыяЛяхоўскі У. Рупіўся дзеля Бога і людзей: Жыццёвы шлях Лявона Вітан-Дубейкаўскага // Вольскі і Памідораў з песняй пра немца Адвакат, паэт, народны заступнік Ашмянскі веснікВ Минске появится площадь Богушевича и улица Сырокомли, Белорусская деловая газета, 19 июля 2001 г.Айцец беларускай нацыянальнай ідэі паўстаў у бронзе Сяргей Аляксандравіч Адашкевіч (1918, Мінск). 80-я гады. Бюст «Францішак Багушэвіч».Яўген Мікалаевіч Ціхановіч. «Партрэт Францішка Багушэвіча»Мікола Мікалаевіч Купава. «Партрэт зачынальніка новай беларускай літаратуры Францішка Багушэвіча»Уладзімір Іванавіч Мелехаў. На помніку «Змагарам за родную мову» Барэльеф «Францішак Багушэвіч»Памяць пра Багушэвіча на Віленшчыне Страчаная сталіца. Беларускія шыльды на вуліцах Вільні«Krynica». Ideologia i przywódcy białoruskiego katolicyzmuФранцішак БагушэвічТворы на knihi.comТворы Францішка Багушэвіча на bellib.byСодаль Уладзімір. Францішак Багушэвіч на Лідчыне;Луцкевіч Антон. Жыцьцё і творчасьць Фр. Багушэвіча ў успамінах ягоных сучасьнікаў // Запісы Беларускага Навуковага таварыства. Вільня, 1938. Сшытак 1. С. 16-34.Большая российская1188761710000 0000 5537 633Xn9209310021619551927869394п

                    Беларусь Змест Назва Гісторыя Геаграфія Сімволіка Дзяржаўны лад Палітычныя партыі Міжнароднае становішча і знешняя палітыка Адміністрацыйны падзел Насельніцтва Эканоміка Культура і грамадства Сацыяльная сфера Узброеныя сілы Заўвагі Літаратура Спасылкі НавігацыяHGЯOiТоп-2011 г. (па версіі ej.by)Топ-2013 г. (па версіі ej.by)Топ-2016 г. (па версіі ej.by)Топ-2017 г. (па версіі ej.by)Нацыянальны статыстычны камітэт Рэспублікі БеларусьШчыльнасць насельніцтва па краінахhttp://naviny.by/rubrics/society/2011/09/16/ic_articles_116_175144/А. Калечыц, У. Ксяндзоў. Спробы засялення краю неандэртальскім чалавекам.І ў Менску былі мамантыА. Калечыц, У. Ксяндзоў. Старажытны каменны век (палеаліт). Першапачатковае засяленне тэрыторыіГ. Штыхаў. Балты і славяне ў VI—VIII стст.М. Клімаў. Полацкае княства ў IX—XI стст.Г. Штыхаў, В. Ляўко. Палітычная гісторыя Полацкай зямліГ. Штыхаў. Дзяржаўны лад у землях-княствахГ. Штыхаў. Дзяржаўны лад у землях-княствахБеларускія землі ў складзе Вялікага Княства ЛітоўскагаЛюблінская унія 1569 г."The Early Stages of Independence"Zapomniane prawdy25 гадоў таму было аб'яўлена, што Язэп Пілсудскі — беларус (фота)Наша вадаДакументы ЧАЭС: Забруджванне тэрыторыі Беларусі « ЧАЭС Зона адчужэнняСведения о политических партиях, зарегистрированных в Республике Беларусь // Министерство юстиции Республики БеларусьСтатыстычны бюлетэнь „Полаўзроставая структура насельніцтва Рэспублікі Беларусь на 1 студзеня 2012 года і сярэднегадовая колькасць насельніцтва за 2011 год“Индекс человеческого развития Беларуси — не было бы нижеБеларусь занимает первое место в СНГ по индексу развития с учетом гендерного факцёраНацыянальны статыстычны камітэт Рэспублікі БеларусьКанстытуцыя РБ. Артыкул 17Трансфармацыйныя задачы БеларусіВыйсце з крызісу — далейшае рэфармаванне Беларускі рубель — сусветны лідар па дэвальвацыяхПра змену коштаў у кастрычніку 2011 г.Бядней за беларусаў у СНД толькі таджыкіСярэдні заробак у верасні дасягнуў 2,26 мільёна рублёўЭканомікаГаласуем за ТОП-100 беларускай прозыСучасныя беларускія мастакіАрхитектура Беларуси BELARUS.BYА. Каханоўскі. Культура Беларусі ўсярэдзіне XVII—XVIII ст.Анталогія беларускай народнай песні, гуказапісы спеваўБеларускія Музычныя IнструментыБеларускі рок, які мы страцілі. Топ-10 гуртоў«Мясцовы час» — нязгаслая легенда беларускай рок-музыкіСЯРГЕЙ БУДКІН. МЫ НЯ ЗНАЕМ СВАЁЙ МУЗЫКІМ. А. Каладзінскі. НАРОДНЫ ТЭАТРМагнацкія культурныя цэнтрыПублічная дыскусія «Беларуская новая пьеса: без беларускай мовы ці беларуская?»Беларускія драматургі па-ранейшаму лепш ставяцца за мяжой, чым на радзіме«Працэс незалежнага кіно пайшоў, і дзяржаву турбуе яго непадкантрольнасць»Беларускія філосафы ў пошуках прасторыВсе идём в библиотекуАрхіваванаАб Нацыянальнай праграме даследавання і выкарыстання касмічнай прасторы ў мірных мэтах на 2008—2012 гадыУ космас — разам.У суседнім з Барысаўскім раёне пабудуюць Камандна-вымяральны пунктСвяты і абрады беларусаў«Мірныя бульбашы з малой краіны» — 5 непраўдзівых стэрэатыпаў пра БеларусьМ. Раманюк. Беларускае народнае адзеннеУ Беларусі скарачаецца колькасць злачынстваўЛукашэнка незадаволены мінскімі ўладамі Крадзяжы складаюць у Мінску каля 70% злачынстваў Узровень злачыннасці ў Мінскай вобласці — адзін з самых высокіх у краіне Генпракуратура аналізуе стан са злачыннасцю ў Беларусі па каэфіцыенце злачыннасці У Беларусі стабілізавалася крымінагеннае становішча, лічыць генпракурорЗамежнікі сталі здзяйсняць у Беларусі больш злачынстваўМУС Беларусі турбуе рост рэцыдыўнай злачыннасціЯ з ЖЭСа. Дазволіце вас абкрасці! Рэйтынг усіх службаў і падраздзяленняў ГУУС Мінгарвыканкама вырасАб КДБ РБГісторыя Аператыўна-аналітычнага цэнтра РБГісторыя ДКФРТаможняagentura.ruБеларусьBelarus.by — Афіцыйны сайт Рэспублікі БеларусьСайт урада БеларусіRadzima.org — Збор архітэктурных помнікаў, гісторыя Беларусі«Глобус Беларуси»Гербы и флаги БеларусиАсаблівасці каменнага веку на БеларусіА. Калечыц, У. Ксяндзоў. Старажытны каменны век (палеаліт). Першапачатковае засяленне тэрыторыіУ. Ксяндзоў. Сярэдні каменны век (мезаліт). Засяленне краю плямёнамі паляўнічых, рыбакоў і збіральнікаўА. Калечыц, М. Чарняўскі. Плямёны на тэрыторыі Беларусі ў новым каменным веку (неаліце)А. Калечыц, У. Ксяндзоў, М. Чарняўскі. Гаспадарчыя заняткі ў каменным векуЭ. Зайкоўскі. Духоўная культура ў каменным векуАсаблівасці бронзавага веку на БеларусіФарміраванне супольнасцей ранняга перыяду бронзавага векуФотографии БеларусиРоля беларускіх зямель ва ўтварэнні і ўмацаванні ВКЛВ. Фадзеева. З гісторыі развіцця беларускай народнай вышыўкіDMOZGran catalanaБольшая российскаяBritannica (анлайн)Швейцарскі гістарычны15325917611952699xDA123282154079143-90000 0001 2171 2080n9112870100577502ge128882171858027501086026362074122714179пппппп

                    ValueError: Expected n_neighbors <= n_samples, but n_samples = 1, n_neighbors = 6 (SMOTE) The 2019 Stack Overflow Developer Survey Results Are InCan SMOTE be applied over sequence of words (sentences)?ValueError when doing validation with random forestsSMOTE and multi class oversamplingLogic behind SMOTE-NC?ValueError: Error when checking target: expected dense_1 to have shape (7,) but got array with shape (1,)SmoteBoost: Should SMOTE be ran individually for each iteration/tree in the boosting?solving multi-class imbalance classification using smote and OSSUsing SMOTE for Synthetic Data generation to improve performance on unbalanced dataproblem of entry format for a simple model in KerasSVM SMOTE fit_resample() function runs forever with no result